在rails中将config.action_mailer.default_url_options设置为该应用的当前主机是什么?

时间:2012-03-07 23:40:24

标签: ruby-on-rails host

如何在config / environments / production.rb中动态设置主机:

config.action_mailer.default_url_options = { :host => THE_HOST}

这是应用程序在暂存和生产时正常工作。我们的登台服务器是stage.app.com,链接需要去那里。

2 个答案:

答案 0 :(得分:5)

config/environments/production.rb执行此操作:

config.action_mailer.default_url_options = { :host => 'app.com' }

并在config/environments/staging.rb执行此操作:

config.action_mailer.default_url_options = { :host => 'stage.app.com' }

正如@BrettBender所评论的那样:

  

您无需动态设置主机。对于生产中的应用程序,将评估production.rb。对于在登台环境中运行的应用程序,rails将自动加载登台文件(与开发或您定义的任何自定义环境相同)

答案 1 :(得分:-1)

将它添加到application_controller中的before过滤器:

ActionMailer::Base.default_url_options = {:host => request.host_with_port}