繁体   English   中英

Rails:在初始化程序中获取主机名

[英]Rails: Get hostname in an initializer

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

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

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

...当我在本地开发中使用Pow时, example.dev是主机名。 如果应用程序正在生产中,则需要为example.com如果staging.example.com分段,则需要为staging.example.com等。

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

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

...但是request.host是我所知道的唯一知道的方法,它只能在控制器级别使用。

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

有什么建议么?

采用:

`hostname`

它使用Unix“hostname”实用程序,并返回一个字符串。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM