我必须为我的设计使用设置这个。
但我的应用程序允许用户通过 2 个域进行访问。
我想用用户访问的域设置 'config.action_mailer.default_url_options = { :host =>'。
我怎样才能做到这一点?
我必须为我的设计使用设置这个。
但我的应用程序允许用户通过 2 个域进行访问。
我想用用户访问的域设置 'config.action_mailer.default_url_options = { :host =>'。
我怎样才能做到这一点?
如果您想要实现的是您发送的电子邮件中的 URL 是使用当前主机或域构建的,则 default_url_options 方法将不起作用,因为它仅在应用程序启动时设置一次 - 请求对象在该上下文中不可用AFAIK,但仅限于控制器操作。
您可以尝试在邮件程序类的电子邮件中生成 URL,而不使用默认主机,如下所示(未测试):
class Mailer < ActionMailer::Base
def welcome(user, host)
@url = url_for(host: host, controller: ..., action: ...)
# construct rest of email here
end
end
然后使用请求中的适当主机从您的控制器调用它:
Mailer.welcome(current_user, request.host).deliver