我想创建一个 Rails 应用程序,在第一次请求用户被引导到设置配置向导时。在此向导中,他们需要配置其电子邮件设置以供 ActionMailer 使用,即。SMTP 服务器设置/凭据。
如何以编程方式更新 ActionMailer 的配置条目(我假设 Application.rb 需要更新)?
如何让 ActionMailer 重新加载这些更新的配置设置?我注意到很多这些设置是在应用程序启动/初始化时加载的,我不想重新启动 Rails 应用程序以使这些更改生效。
我想创建一个 Rails 应用程序,在第一次请求用户被引导到设置配置向导时。在此向导中,他们需要配置其电子邮件设置以供 ActionMailer 使用,即。SMTP 服务器设置/凭据。
如何以编程方式更新 ActionMailer 的配置条目(我假设 Application.rb 需要更新)?
如何让 ActionMailer 重新加载这些更新的配置设置?我注意到很多这些设置是在应用程序启动/初始化时加载的,我不想重新启动 Rails 应用程序以使这些更改生效。
只需将设置存储到会话中并在为您的 AC 过滤之前在内部执行此操作:
class ApplicationController < ActionController::Base
before_filter :set_mailer_settings
private
def set_mailer_settings
ActionMailer::Base.smtp_settings = {
:address => session[:smtp_address],
:port => session[:smtp_port],
:domain => session[:smtp_domain],
:authentication => session[:smtp_authentication],
:user_name => session[:smtp_user_name],
:password => session[:smtp_password]
}
end
end