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