在Rails应用程序中从env哈希获取主机名的最佳方法是什么?

时间:2011-12-14 12:13:27

标签: ruby-on-rails omniauth hostname env

我正在编写OmniAuth dynamic provider并且在回调中我需要获取当前主机名(该应用程序可以在多个不同的主机名中运行)。我没有请求对象,只是一个大的env哈希。我发现这个哈希包含一个带有主机名的条目env [“SERVER_NAME”],但我不确定这是否是一个稳定的条目,或者它可能会根据网络服务器或类似的东西而改变。

我还在成员变量@host中找到了埋在env [“action_dispatch.routes”]中的主机名。

任何想法在这一点上获取主机名的最佳或规范方法是什么?

2 个答案:

答案 0 :(得分:3)

该应用尚未投入使用,但到目前为止,私有测试版使用env["SERVER_NAME"]就像魅力一样。

答案 1 :(得分:1)

在rails控制器中,您只需使用:

request.host

虽然我不确定这些消息来源与您已经看过的内容有什么不同。在我正在使用的Rails 3.1应用程序中,这对我来说很好。