我在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'
我不确定如何获得我设置的配置值。
感谢您的帮助。
答案 0 :(得分:17)
只是一个旁注: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
答案 1 :(得分:4)
尝试访问:
Rails.application.config.notify_submited_transaction
Rails.application.config.notify_approved_transaction
似乎类似于:For Rails, how to access or print out config variables (as experiment or test / debugging)