我正在开发一个活跃网站的沙盒版本。该网站的沙箱版本指向不同的域名。我正在处理使用我邮件中index_merge(union)
的值生成网址的电子邮件。
在config.action_mailer.default_url_options
中,我将活动网站的域名作为主机。我想在从request.domain或request.base_url获取值的地方更改它。这可能吗?如果是这样,我如何为主机写入值?我尝试了以下操作,但在执行rake命令时出错。
config/environments/production.rb
我已完成网络搜索,但未找到任何可以使用 config.action_mailer.default_url_options = { :host => "#{request.base_url}" }
config.action_mailer.default_url_options = { :host => request.base_url }
NameError: undefined local variable or method `request' for #<myrailsappname::Application:0x007faafc702bb0>
Did you mean? require
或request.base_url
的示例。
答案 0 :(得分:1)
你可以试试这个..
在application_controller.rb before_filter中添加:
ActionMailer :: Base.default_url_options = {:host =&gt; request.host_with_port}
另一种方式是..
类UserMailer&lt;的ActionMailer ::基
def welcome_email(user, request)
@user = user
@url = user_url(@user, host: request.host_with_port ) #option2 (do this for each link)
mail(:to => user.email,
:subject => "Welcome to My Awesome Site")
end
end