我正在使用Devise邀请来邀请。我们在单个rails应用中使用不同的子域,例如test1.domain.com,test2.domain.com等,并希望我们发送给用户的邀请网址反映出来。
由于该值似乎基于config / production.rb中的config var:
config.action_mailer.default_url_options = { host: 'www.domain.com' }
我不清楚更改电子邮件视图中使用的网址的最佳方法是什么:
<%= link_to t("devise.mailer.invitation_instructions.accept"), accept_invitation_url(@resource, :invitation_token => @token) %>
我找不到accept_invitation_url的来源所以我甚至不确定它在哪里设置。
非常感谢任何帮助!
答案 0 :(得分:2)
新秀错误:
诀窍是停止尝试将其作为一个设计问题进行搜索,而更多的是一个一般的ActionMailer问题,这使我得到了这个简单的解决方案:http://excid3.com/blog/change-actionmailer-email-url-host-dynamically/
基本上只需使用您想要的任何逻辑重置应用程序控制器中的URL:
before_filter :set_mailer_host
def set_mailer_host
ActionMailer::Base.default_url_options[:host] = request.host_with_port
end