0

実稼働環境と開発環境の両方で次の構成があります。

config.action_mailer.smtp_settings = {
  :address   => "smtp.mandrillapp.com",
  :port      => 587,
  :user_name => ENV["MANDRILL_USERNAME"],
  :password  => ENV["MANDRILL_PASSWORD"]
}

私はしばらくこれをグーグルで検索しましたが、私が理解できる答えは見つかりませんでした。Railsプロジェクトの開発と本番の両方でENV変数を設定するにはどうすればよいですか?

4

2 に答える 2

2

開発には、バージョン管理で無視される構成ファイルを使用する必要があります。YAML、JSON、ruby、bashなどが考えられます...それは簡単な選択です。次に、初期化ファイルを使用して、アプリの起動時にこれらの変数が読み込まれることを確認します。本番環境では、デプロイプロセスの一環として、構成ファイル(設定が異なる場合もあります)を適切な場所にコピーできます。または、herokuを使用している場合は、コマンドラインからを使用してこれらを設定できますheroku config:add YADA=yada

YAMLファイルからの設定を使用した基本的な例を次に示します。

# config/settings.yml
development:
 MANDRILL_USERNAME=secret_username
 MANDRILL_PASSWORD=secret_password
 ANOTHER_SECRET_SETTING=the_list_goes_on_and_on
production:
 MANDRILL_USERNAME=different_username
 MANDRILL_PASSWORD=another_password
 ANOTHER_SECRET_SETTING=get_the_idea?

# .gitigore
# ...
config/settings.yml

# config/initializers/environment_settings.rb
environment_settings = YAML.load_file('./config/settings.yml')[Rails.env]
environment_settings.each do |key, value|
  ENV[key] ||= value
end
于 2012-09-28T02:29:18.730 に答える
1

それらは環境変数です。開発と本番用に設定しません。

アプリケーション構成変数はさまざまな方法で設定できます。または、実行する前にシェルで設定することも、環境固有の名前を使用することもできます。

于 2012-09-27T19:38:05.027 に答える