Acessando configurações do banco de dados no Rails
Toda aplicação Rails possui o arquivo config/database.yml, onde você configura
a conexão com o banco de dados nos ambientes de produção, desenvolvimento e teste.
O Rails se encarrega de realizar a conexão com o banco de dados quando a aplicação
é iniciada (com o WEBrick, por exemplo).
E como fazer caso seja necessário, no seu contexto, ter acesso ao username e password presentes nesse arquivo? Acredito que esses dados não estejam disponíveis em nenhum dos objetos que o Rails instancia (eu procurei), certamente por questões de segurança, mas se você realmente precisa carregar esses dados, eis aqui uma forma bem simples.
De preferência dentro de um controller da sua aplicação (como o ApplicationController),
você pode definir esta linha:
class ApplicationController < ActiveRecord::Base
@@db_config = YAML.load_file("#{RAILS_ROOT}/config/database.yml")[RAILS_ENV]
end
Agora você tem em @@db_config um hash (cujas chaves são strings, e não símbolos)
com tudo aquilo que você precisa. Digamos que seu config/database.yml tivesse esta
cara:
production:
adapter: mysql
database: teste_production
username: teste
password: teste
timeout: 5000
development:
adapter: mysql
database: teste_development
username: teste
password: teste
timeout: 5000
Se o servidor da aplicação está rodando em modo de desenvolvimento, então a constante
RAILS_ENV guarda development. Por conseqüência, @@db_config['database'], por
exemplo, guarda teste_development.
Por ter sido declarada no escopo de classe de ApplicationController, nesse exemplo
@@db_config estaria disponível em todos os métodos de todos os seus controllers.
