我在development.rb中有一些电子邮件设置,我想在我的控制器中访问它.
设置development.rb是:
config.notify_submited_transaction = 'anil@swiftsetup.com,anildbest83@gmail.com'
config.notify_approved_transaction = 'anil@swiftsetup.com'
Run Code Online (Sandbox Code Playgroud)
在我的控制器/动作中,我正在尝试这个:
@to = Rails.env.notify_submited_transaction
@subject = 'AM - Vendor Submitted Transaction'
AmMailer.vendor_submited_transaction(@to, @subject, current_user).deliver
Run Code Online (Sandbox Code Playgroud)
这虽然导致错误:
undefined method `notify_submited_transaction'
Run Code Online (Sandbox Code Playgroud)
我不知道如何获得我设置的配置值.
谢谢你的帮助.
Ern*_*est 18
只是一个旁注:Rails.env是一个特殊的字符串对象,它允许你获得当前的环境(它不像Rack的env):
puts Rails.env # => "production"
puts Rails.env.test? # => false
Run Code Online (Sandbox Code Playgroud)
这并不意味着返回配置设置.
当您想要自定义设置时,这可能会派上用场/config/initializers/*,为清楚起见,在某些情况下这是更好的方法(建议不要使用自定义设置来混乱rails环境文件).例如:
# config/initializers/mailer_settings.rb
if Rails.env.production?
ActionMailer::Base.smtp_settings = {
:address => "smtp.gmail.com",
...
}
else
#different settings
end
Run Code Online (Sandbox Code Playgroud)
尝试访问:
Rails.application.config.notify_submited_transaction
Rails.application.config.notify_approved_transaction
Run Code Online (Sandbox Code Playgroud)
似乎类似于:对于 Rails,如何访问或打印配置变量(作为实验或测试/调试)
| 归档时间: |
|
| 查看次数: |
12720 次 |
| 最近记录: |