如何在Rails应用程序中获取主机和端口

时间:2010-05-11 18:13:36

标签: ruby-on-rails

在Rails模型中,我希望能够找到主机和端口。例如,如果我在测试环境中,它将返回http://localhost:3000/,如果我在生产中,它将返回类似http://my.application.com/的内容?

7 个答案:

答案 0 :(得分:24)

答案 1 :(得分:21)

"#{root_url}"

应在您的routes.rb

中声明

答案 2 :(得分:10)

您可以使用此

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

在字符串连接中使用时

"#{request.protocol}#{request.host_with_port}/book/1"
# https://example.com:3000/book/1

答案 3 :(得分:6)

您可以在控制器中获取这些值(request.host,request.port等)。

您必须通过参数将其提供给模型,因为请求对象仅在控制器中可用。

答案 4 :(得分:0)

答案 5 :(得分:0)

如Vadim Golub所述,如果您使用滑轨5,请使用它:

  

request.base_url

答案 6 :(得分:-1)