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

Jon*_*han 24 ruby-on-rails

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

Kam*_*i81 23

"#{root_url}"
Run Code Online (Sandbox Code Playgroud)

应该在您的routes.rb中声明


小智 11

你可以用它

<%= request.protocol + request.host_with_port %>
#=> https://example.com:3000
<%= request.protocol + request.host %>
#=> https://example.com
Run Code Online (Sandbox Code Playgroud)

在字符串连接中使用时

"#{request.protocol}#{request.host_with_port}/book/1"
# https://example.com:3000/book/1
Run Code Online (Sandbox Code Playgroud)


Max*_*xem 6

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

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