【问题标题】:Dynamic host in ActionMailer is not workingActionMailer 中的动态主机不起作用
【发布时间】:2016-02-03 16:53:36
【问题描述】:

我的 Rails 应用程序中有动态主机,据此我正在发送邮件,我正在使用 actionmailer,并且在视图中我想链接一些链接。

notification_mailer.rb

class NotificationMailer < ApplicationMailer

def new(email)
   @url = root_url
   mail(to: email, subject: 'XYZ')
end

new.html.erb

<%= link_to 'visit', @url %>

application_controller.rb

before_action :mailer_set_url_options

ActionMailer::Base.default_url_options[:host] = request.host_with_port

我提供了所需的一切,但仍然收到错误消息,提示未找到主机。我正在从 sidekiq 调用通知邮件。

【问题讨论】:

    标签: ruby-on-rails-4 actionmailer


    【解决方案1】:

    在调用邮件操作时尝试传递请求。

    class Your_MailerClass < ActionMailer::Base
      def your_mailer_action(request)
        Your_MailerClass.default_url_options[:host] = request.host_with_port 
      end
    end 
    

    【讨论】:

    • 谢谢。是的,这就是我最后所做的,但它的坏黑客没有:/
    • 但它不是正确的答案我正在寻找更明智的东西,可以从工人或后台工人运行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-26
    • 1970-01-01
    • 2012-06-01
    • 2013-07-29
    相关资源
    最近更新 更多