在我的要求中,单个项目有不同的域名。我想发送重置密码链接,其中包含用户请求重置密码的域名。为此,我在application_controller.rb中完成了以下操作。效果很好。
before_filter :set_mailer_host
def set_mailer_host
ActionMailer::Base.default_url_options[:host] = request.host_with_port
$url_host = request.host_with_port
end
后来,我将sidekiq用于延迟邮件程序,并在整个应用程序中更新如下
Notifier.delay.password_reset(user.id)
由于邮件程序配置了sidekiq,它只使用配置中提供的默认域名,并且没有使用application_controller.rb上请求提供的动态域名
任何关于在sidekiq上运行的邮件程序上获取动态域名的建议都将非常感谢。
Rails - 3.2.8 Ruby - 1.9.3 sidekiq - 2.13.1
感谢!!!
答案 0 :(得分:1)
其中一个选项是将每个用户与一个域相关联,并在sidekiq中发送电子邮件时使用此信息。
答案 1 :(得分:0)
您需要自己构建网址,而不是依靠AM来为您完成。