使用sidekiq时Rails动作邮件程序中的动态域名

在我的要求中,单个项目有不同的域名。我想发送重置密码链接与用户请求重置密码的域名。为此我在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

谢谢!!!

其中一个选项是将每个用户与一个域相关联,并在sidekiq中发送电子邮件时使用此信息。

您需要自己构建url,而不是依靠AM来为您完成。