我可以将 ActionMailer 的 default_url_options 设置为 request.base_url 或 request.domain 吗?
Can I Set default_url_options for ActionMailer to request.base_url or request.domain?
我正在开发一个活跃网站的沙盒版本。该网站的沙盒版本指向不同的域名。我正在处理使用我的邮件程序中 config.action_mailer.default_url_options
的值生成 URL 的电子邮件。
在config/environments/production.rb
中我有活动网站的域名作为主机。我想更改它从 request.domain 或 request.base_url 获取值的位置。这可能吗?如果是这样,我该如何写主机的值?我尝试了以下但在执行 rake 命令时出现错误。
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
或 request.domain
的示例。
你可以试试这个..
在 application_controller.rb before_filter 添加:
ActionMailer::Base.default_url_options = {:host => request.host_with_port}
另一种方式是..
class UserMailer < ActionMailer::Base
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
我正在开发一个活跃网站的沙盒版本。该网站的沙盒版本指向不同的域名。我正在处理使用我的邮件程序中 config.action_mailer.default_url_options
的值生成 URL 的电子邮件。
在config/environments/production.rb
中我有活动网站的域名作为主机。我想更改它从 request.domain 或 request.base_url 获取值的位置。这可能吗?如果是这样,我该如何写主机的值?我尝试了以下但在执行 rake 命令时出现错误。
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
或 request.domain
的示例。
你可以试试这个..
在 application_controller.rb before_filter 添加:
ActionMailer::Base.default_url_options = {:host => request.host_with_port}
另一种方式是..
class UserMailer < ActionMailer::Base
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