我正在制作 Rails 应用程序,我需要从我的 Rails 控制器之一获取 URL 的主机名。
如果我的URL是
http://www.example.com/path/0
,那么我只想提取www.example.com
部分。我怎样才能做到这一点?我找到了 request.base_url
但这会返回 http://www.example.com
,这是我不想要的。
在 javascript 中有一个函数,
window.location.hostname
。我想知道 Ruby on Rails 中是否有类似的东西。
您可以使用
request.host
来准确获取您想要的 URL。
您可以使用
request.port
从 url 获取您的端口
URI
模块可以为您做到这一点。
uri = URI("http://www.example.com/path/0")
uri.host # => "www.example.com"
我正在使用 Rails 4.2
我们可以用一种方法获取主机和端口
request.host_with_port
=> "localhost:3002"
基于URI模块,如果您也需要端口,我们还可以使用#authority方法。
uri = URI("http://lvh.me:3000/path/0")
uri.authority # => "lvh.me:3000"
查看更多关于 URI #authority 方法