2010-05-11 38 views
19

在Rails模型中,我希望能夠找出主機和端口。例如,如果我處於測試環境中,它將返回http://localhost:3000/,如果我在生產中,它將返回類似http://my.application.com/的東西?如何獲取Rails應用程序中的主機和端口

+0

重複:HTTP://計算器。 com/questions/42566/getting-the-hostname-or-ip-in-ruby-on-rails – ghoppe 2010-05-11 18:19:15

+0

可能的重複[如何查找本地端口rails實例運行(http://stackoverflow.com/questions/1554267/how-to-find-the-local-port-a-rails-instance-is-running-on)爲端口,http:// stackoverflow .com/questions/42566/getting-the-hostname-or-ip-in-ruby-on-rails for the host。 – 2014-10-09 20:29:24

回答

6

你可以在控制器中的值(request.host ,request.port等)。

您必須通過參數將其提供給您的模型,因爲請求對象僅在控制器中可用。

17
"#{root_url}" 

應該在你的routes.rb

+0

這就是我正在尋找的東西。起初,request.host_with_port正在爲我工​​作,但我需要領先的'HTTP://'。這可以像任何其他的url /路徑助手一樣工作。 – Dudo 2013-10-08 18:27:23

+0

我認爲答案要好得多。沒有請求檢查,只需簡單的路由器輔助方法 – 2015-07-03 12:49:44

3

您可以使用此

<%= request.protocol + request.host_with_port %> 
#=> https://example.com:3000 
<%= request.protocol + request.host %> 
#=> https://example.com 
相關問題