在Rails初始化程序之后重新加载配置

时间:2010-11-16 06:15:28

标签: ruby-on-rails configuration

environment.rb中,在初始化程序块中配置了rails:

Rails::Initializer.run do |config|
  config.action_mailer.smtp_settings = SETTINGS
end

这会传播以将各种配置设置推送到框架类,如ActionMailer :: Base.smtp_settings。

如果我需要在Initializer.run块之外重新配置它,我可以设置:

Rails.configuration.action_mailer.smtp_settings = NEW_SETTINGS

但在这种情况下,它在ActionMailer :: Base.smtp_settings中没有被选中。

有没有办法让Rails再次“推送”其更新的配置?或者最好直接重新配置ActionMailer :: Base而不用担心Rails.configuration与它不同步?

1 个答案:

答案 0 :(得分:1)

您应该只使用ActionMailer :: Base类。使用Rails.configuration的目的是能够在加载实际代码之前设置各种选项。如果之后需要更改某些内容,则无需使用Rails.configuration。