rails上的localhost

时间:2009-07-28 18:58:59

标签: ruby-on-rails ruby localhost

我发送的电子邮件中包含指向我网站的链接。我希望能够在本地测试它,并能够轻松地将脚本移动到不同的主机。

我现在在电子邮件中使用以下内容:

  <%= url_for(:host => 'localhost:3000', :controller => "user_activations", :action => "show", :id=>@id, :confirm=>@passcode) %>

这适用于本地测试,但显然无法进行生产。是否有一种简单的方法让rails(或ruby)检测当前主机是什么?我在想像PHP的$ _SERVER。

我意识到我可以使用我的环境变量使用一些逻辑,但我想避免这种情况。

由于

2 个答案:

答案 0 :(得分:2)

我在我的environment.rb中定义一个常量'HOST'来设置我的主机。或者,您可以使用request.host或request.domain。

答案 1 :(得分:1)

环境/ development.rb

中的

config.action_mailer.default_url_options = { :host => "localhost", :port => 3000 }
环境/ production.rb

中的

config.action_mailer.default_url_options = { :host => "www.xyu.at" }

并使用rspec-email进行测试:)