2009-07-28 48 views
0

我正在發送一封電子郵件,其中包含指向我網站的鏈接。我希望能夠在本地進行測試,並且能夠輕鬆地將腳本移到不同的主機。localhost on rails

在我的電子郵件,現在我用的是以下幾點:

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

這工作進行本地測試時,但顯然無法進行生產。有沒有一種簡單的方法讓rails(或ruby)檢測當前主機是什麼?我在想像PHP的$ _SERVER。

我意識到我可以使用一些邏輯使用我的環境變量,但我想避免這種情況。

感謝

回答

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的電子郵件:)

+0

只需注意,一個簡單的方法是使用yaml配置文件,然後使用default_url_o ptions = yml [ENV] – Ori 2009-07-31 06:10:44

2

我定義我的environment.rb中恆 'HOST',設置我的主人。或者,您可以使用request.host或request.domain。

在環境
+0

認沽HOST = 「本地主機:3000」您的環境/ development.rb和環境/ production.rb中的活動環境,即HOST =「www.myhost.com」 – 2009-07-29 13:30:25