在Rails模型中,我希望能够找到主机和端口。例如,如果我在测试环境中,它将返回http://localhost:3000/
,如果我在生产中,它将返回类似http://my.application.com/
的内容?
答案 0 :(得分:24)
host_with_port
应该适合你:
http://apidock.com/rails/ActionDispatch/Http/URL/host_with_port
答案 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)
您可以使用request_uri
http://apidock.com/rails/ActionController/AbstractRequest/request_uri
答案 5 :(得分:0)
如Vadim Golub所述,如果您使用滑轨5,请使用它:
request.base_url
答案 6 :(得分:-1)