8

コントローラーでアクセスしたいdevelopment.rbにいくつかの電子メール設定があります。

の設定は次のdevelopment.rbとおりです。

config.notify_submited_transaction = 'anil@swiftsetup.com,anildbest83@gmail.com'
config.notify_approved_transaction = 'anil@swiftsetup.com'

私のコントローラー/アクションでは、これを試しています:

  @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'

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

助けてくれてありがとう。

4

2 に答える 2

19

補足: Rails.env は特別な文字列オブジェクトで、現在の環境を取得できます (Rack の env とは異なります):

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

構成設定を返すことを意図したものではありません。

これは、カスタム設定を の下に置きたい場合に便利です。/config/initializers/*明確にするために、場合によってはより良い方法です (カスタム設定で Rails 環境ファイルを乱雑にしないことをお勧めします)。例えば:

# config/initializers/mailer_settings.rb
if Rails.env.production?
  ActionMailer::Base.smtp_settings = {
    :address              => "smtp.gmail.com",
    ...
  }
else
  #different settings
end
于 2012-04-11T08:12:05.480 に答える
5

アクセスしてみてください:

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

次のように思われます:Railsの場合、構成変数にアクセスまたは出力する方法(実験またはテスト/デバッグとして)

于 2012-04-11T07:55:58.110 に答える