actionmailer 基于.LTD app.com/app.fr 设置主机动态

问题描述 投票:0回答:2

我的 Rails 应用程序中有 2 种不同的语言,并且希望能够以正确的语言设置域名。例如,如果用户从 app.FR 注册,我希望在下面的示例中使用扩展名 .FR 而不是 .COM 有没有办法做到这一点?

  config.action_mailer.asset_host = "http://app.com"
  config.action_mailer.default_url_options = {:host => 'app.com'}
ruby-on-rails ruby-on-rails-3 internationalization actionmailer i18n-gem
2个回答
1
投票

解决方案似乎是在 ApplicationController 中设置一个 before 过滤器并创建一个如下函数:

  def set_mailer_host
    ActionMailer::Base.default_url_options[:host] = request.host_with_port
  end

请记住,当从 Rails 控制台发送邮件时,这将不起作用,因为 Rails 控制台不会传递真正的 ActionController。


0
投票

ApplicationController

class ApplicationController < ActionController::Base


end

ApplicationMailer
类中,设置以下方法:

def default_url_options
  { host: "app.fr" }
end
© www.soinside.com 2019 - 2024. All rights reserved.