開発環境と本番環境の設定値を、その環境に拠って実行時に変えたい。
configatron というものを発見。
まずは、gem でインストール
[bash]
$gem install configatron
[/bash]
plugin をインストールすると、自動的にconfigファイルや初期ロードファイルが作成されるらしいが、インストール時にエラーとか発生して面倒だったので、手動にて下記ファイルを作成する。
config/initializers/load_config.rb
[ruby]
configatron.configure_from_yaml("config/config.yml", :hash => Rails.env)
[/ruby]
config/config.yml
[ruby]
development:
hoge: 開発環境だよ。
test:
hoge: テスト環境だよ。
production:
hoge: 本番環境だよ。
[/ruby]
app/controllers/hello_controller.rb
[ruby]
hello = configatron.hoge
[/ruby]
これだけで環境によってパラメータを変えられる。
config/initializers/load_config.rb が読み込まれるのはサーバ起動時らしいので、設定したら再起動を忘れずに・・・。
実は、ずっと値が取得できずに丸1日ハマっていた。