0

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

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

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

这适用于本地测试,但显然会在生产中失败。有没有一种简单的方法可以让 rails(或 ruby​​)检测当前主机是什么?我在想类似 $_SERVER of php 的东西。

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

谢谢

4

2 回答 2

2

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

于 2009-07-28T19:02:54.910 回答
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 进行测试 :)

于 2009-07-29T13:55:56.237 回答