4

我正在使用 Sorcery 进行身份验证,我需要在其初始化程序中设置第三方身份验证。

初始化程序有一行如下所示:

config.twitter.callback_url "http://example.dev/auth/callback?provider=twitter"

...example.dev当我在本地开发中使用 Pow 时,主机名在哪里。如果example.com应用程序处于生产状态,或者staging.example.com处于暂存状态等,则必须如此。

我想将此行设置为如下所示:

config.twitter.callback_url "#{Rails.hostname}/auth/callback?provider=twitter"

...但这request.host是我所知道的唯一一种知道这一点的方法,并且它仅在控制器级别可用。

我可以使用条件测试并为每个环境手动设置主机名,但是当我在不同的本地和暂存环境中进行测试时,能够以编程方式设置它会很棒。

有什么建议么?

4

2 回答 2

6

您可以通过它获取主机名,Socket.gethostname它是 Ruby 标准库的一部分。

于 2013-12-30T18:06:43.623 回答
5

采用:

`hostname`

它使用 Unix“主机名”实用程序,它返回一个字符串。

于 2012-03-19T02:51:15.877 回答