2016-02-03 46 views
0

我在我的Rails應用程序中擁有動態主機,並且根據這一點我正在發送我的郵件我正在使用actionmailer,並且在視圖中我想鏈接一些鏈接。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的通知郵件。

回答

0

嘗試在調用郵件程序操作時傳遞請求。

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

謝謝。是的,這就是我在最後做了什麼,但它的壞破壞不是:/ –

+0

但它的不正確答案我正在尋找更合理的東西,可以從工人或後臺工作人員運行。 –