2010-05-11 71 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 
相关问题