2012-04-11 3 views
6

で環境設定を取得します。 development.rb私は私は私のコントローラにアクセスしたいdevelopment.rbにおけるいくつかの電子メールの設定を持っているレールコントローラ

設定は以下のとおりです。私のコントローラ/アクションで

config.notify_submited_transaction = '[email protected],[email protected]' 
config.notify_approved_transaction = '[email protected]' 

私はこのしようとしています:

@to = Rails.env.notify_submited_transaction 
    @subject = 'AM - Vendor Submitted Transaction' 
    AmMailer.vendor_submited_transaction(@to, @subject, current_user).deliver 

このエラーになりかかわら:

undefined method `notify_submited_transaction' 

が、私はわかりません私が設定した設定値を取得する方法。

ありがとうございました。

+0

これはhttp://stackoverflow.com/questions/592554/best-way-to-create-custom-config-options-for-my-rails-appとHTTPの可能な重複は次のとおりです。 //stackoverflow.com/questions/1450285/how-to-define-custom-configuration-variables-in-rails – Ernest

答えて

17

だけ追記:

Rails.application.config.notify_submited_transaction 
Rails.application.config.notify_approved_transaction 

は次のように思えるRails.envあなたは現在の環境を取得することができ、特別な文字列オブジェクト、(そのラックのENVを好きではない)であります:

puts Rails.env # => "production" 
puts Rails.env.test? # => false 

設定を返すためのものではありません。

これは、カスタム設定を/config/initializers/*にする場合に便利な場合があります。また、明快にするために、場合によってはより良い方法です(カスタム設定でレール環境ファイルを混乱させないことが推奨されます)。たとえば:

# config/initializers/mailer_settings.rb 
if Rails.env.production? 
    ActionMailer::Base.smtp_settings = { 
    :address    => "smtp.gmail.com", 
    ... 
    } 
else 
    #different settings 
end 
+0

したがって、アプリケーションを本番環境にデプロイすると、自動的にproduction.rbから構成値を取得することはありませんか? –

+0

とsmtpの設定、私はdevelopment.rbで追加しました、それらも自動的にproduction.rbから選んでいないのですか? –

+0

@AnilDあなたがproduciont環境でのRailsを実行する場合は、アプリ/ environment.rbにアプリ/環境/ production.rbから構成設定をロードします。だから、開発から設定を選ぶことはありません。私は必要なものだ – Ernest

関連する問題