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 回答