在 ruby on Rails 中获取 URL 的主机名

问题描述 投票:0回答:4

我正在制作 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 中是否有类似的东西。

ruby-on-rails ruby
4个回答
2
投票

您可以使用

request.host
来准确获取您想要的 URL。

您可以使用

request.port
从 url 获取您的端口


2
投票

URI
模块可以为您做到这一点。

uri = URI("http://www.example.com/path/0")
uri.host # => "www.example.com"

1
投票

我正在使用 Rails 4.2

我们可以用一种方法获取主机和端口

request.host_with_port
=> "localhost:3002"

0
投票

基于URI模块,如果您也需要端口,我们还可以使用#authority方法。

uri = URI("http://lvh.me:3000/path/0")
uri.authority # => "lvh.me:3000"

查看更多关于 URI #authority 方法

© www.soinside.com 2019 - 2024. All rights reserved.