我有一个应用程序已在几个环境中启动,即(开发,升级,测试版,直播)
发送邮件时传递应用程序域名的最佳方法是什么,根据服务器允许不同的域名?
我的第一个想法是在每个相应的environment.rb文件中添加一些内容,因此config/environments/beta.rb
将包含
ActionMailer::Base.smtp_settings[:domain] = 'beta.domain.com'
config/environments/staging.rb
将包含
ActionMailer::Base.smtp_settings[:domain] = 'staging.domain.com'
这感觉就像我正在做一些基本的东西,以至于Rails已经有了这个价值,但我没有在我通常期望的任何地方找到它,也无法在文档中找到它。 / p>
最好的方法是什么?
答案 0 :(得分:4)
我通常只将request.host
的值传递给ActionMailer方法。
答案 1 :(得分:1)
在您的环境文件中,您要设置:
ActionMailer::Base.default_url_options = { :host => "beta.domain.com" }
如果您使用的是url_for而不是命名路由,则还需要指定:only_path =>假...所以你没有得到相对的网址。不过,我通常会尝试使用命名路由。