我发送的电子邮件中包含指向我网站的链接。我希望能够在本地测试它,并能够轻松地将脚本移动到不同的主机。
我现在在电子邮件中使用以下内容:
<%= url_for(:host => 'localhost:3000', :controller => "user_activations", :action => "show", :id=>@id, :confirm=>@passcode) %>
这适用于本地测试,但显然无法进行生产。是否有一种简单的方法让rails(或ruby)检测当前主机是什么?我在想像PHP的$ _SERVER。
我意识到我可以使用我的环境变量使用一些逻辑,但我想避免这种情况。
由于
答案 0 :(得分:2)
我在我的environment.rb中定义一个常量'HOST'来设置我的主机。或者,您可以使用request.host或request.domain。
答案 1 :(得分:1)
config.action_mailer.default_url_options = { :host => "localhost", :port => 3000 }
环境/ production.rb 中的
config.action_mailer.default_url_options = { :host => "www.xyu.at" }
并使用rspec-email进行测试:)