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.

You can leave a response, or trackback from your own site.

Leave a Reply

Powered by WordPress | Find Low APR Credit Cards at BestInCreditCards.com | Thanks to iApplyForCreditCards.com, RPG Soundtracks and Transfer of Equity
SEO Powered by Platinum SEO from Techblissonline