1

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

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

任何想法此时获取主机名的最佳或规范方法是什么?

4

2 回答 2

3

该应用程序尚未投入生产,但到目前为止,私人测试版的使用env["SERVER_NAME"]就像一个魅力。

于 2012-02-11T18:03:21.840 回答
1

在 Rails 控制器中,您可以简单地使用:

request.host

虽然我不确定这是否与您已经看到的有所不同。在我正在开发的 Rails 3.1 应用程序中,这对我来说很好。

于 2011-12-14T13:33:54.013 回答