3

我必须为我的设计使用设置这个。
但我的应用程序允许用户通过 2 个域进行访问。
我想用用户访问的域设置 'config.action_mailer.default_url_options = { :host =>'。

我怎样才能做到这一点?

4

1 回答 1

1

如果您想要实现的是您发送的电子邮件中的 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
于 2012-07-14T19:54:51.287 回答