2011-04-07 111 views
35

如果我作为在Rails中,如何获取当前url(但没有路径)

http://domain.com/mysite/bla 

我如何申请只是URL没有路径这样的网址?如

http://domain.com 
+2

完全重复:http://stackoverflow.com/questions/2165665/how-to-get-current-url-in-rails – 2011-04-07 05:45:48

+4

这不是一个重复的,因为笔者想与主机只返回协议,但没有完整的网址 – fl00r 2011-04-07 11:31:28

+0

你应该接受@ fl00r的答案,这是最好的答案。 – Deviljho 2015-01-06 17:43:13

回答

73

您可以使用此

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

从Rails的3.2,你也可以开始尝试这个

<%=request.scheme + '://' + request.host_with_port%> 

使用

<%= request.base_url %> 
#=> https://domain.com:3000 
2

request.host应该做的伎俩,或:

request.port.blank? ? request.host : "#{request.host}: #{request.port}" 

如果你需要包含的端口了。

+0

如果指定不包含端口 – Martin 2011-04-07 06:24:45

+0

'request.port.blank? ? request.host:“#{request.host}:#{request.port}”' – Pravin 2011-04-08 05:04:30

1

如果你想看到的请求对象的所有可用的方法,然后

<%=request.methods.sort%> 
0

对于协议,域和端口

<%= "#{request.protocol + request.host}:#{request.port.to_s}" %> 
0

如果你的端口可以是任何东西比其他80也应包括在内。

"#{request.protocol}#{request.host_with_port}"