Rails:如何获取当前主机,或者使用它构建URL?

时间:2012-02-26 12:08:30

标签: ruby-on-rails ruby url host

我需要使用主机来构建具有不同端口的URL。

例如,如果主机是example.com,我需要生成类似http://example.com:8080/

的网址

我需要它是可移植的,所以当我在我的本地环境中时,它会显示http://localhost:8080/

有什么想法吗?

2 个答案:

答案 0 :(得分:43)

我经常在before_filter中使用ApplicationController来设置一个带有主机名的实例变量,如下所示:

@hostname = request.host || "www.mydomain.com"

您还可以使用request.port获取请求所来自的端口号(取自HTTP标头)。

答案 1 :(得分:8)

基本上你需要根据当前的url和其他一些端口号生成url。 它可以作为 -

完成
request.url(:port => 20)

在rails控制台上

app.root_url(:port => 20)
 => "http://www.example.com:20/" 

从网址中提取主机

request.host