3

現在、初期化子を使用して config.yml ファイルを、環境の変数へのアクセスを提供する AppConfig ハッシュにロードしています。本番環境では、サーバーに設定された環境変数を使用しています。環境変数が設定されていない場合 (つまり、開発中およびテスト中) に、次のコードを使用して config 変数にフォールバックしています。

ENV['FACEBOOK_API_KEY'] || AppConfig['facebook_api_key']

私の問題は、これらの変数のいくつかを環境固有のファイル (development.rb/production.rb など) で使用できるようにする必要があることですが、このファイルはイニシャライザーの前にロードされます。これにどのように対処すればよいですか?

4

2 に答える 2

8

構成初期化イベントのRailsガイドを参照してください。この種の構成を行うときにフックできるイベントがあります。

つまり、次の方法で初期化後に環境の構成を行うことができます。

#config/environments/development.rb
YourApp::Application.configure do
  config.after_initialize do
    #do some configuration after all initialisers have run
  end
end
于 2012-02-13T14:36:22.803 に答える
0

database.yml同じファイルで環境ごとに個別の構成を常に定義できるように、2 層構造を作成できる方法がある場合は、適切なバージョンを参照してください。

ENV['FACEBOOK_API_KEY'] || AppConfig[Rails.env] && AppConfig[Rails.env]['facebook_api_key']
于 2012-02-13T15:33:29.240 に答える