【问题标题】:how to get domain url in initializer file, rails如何在初始化文件Rails中获取域URL
【发布时间】:2012-05-27 14:27:38
【问题描述】:

我想知道是否可以获取域 url 即

localhost or myapp.heroku.com

来自初始化文件?

我相信

request.url

并且请求方法仅在控制器中有效。有没有等价于javascript的

document.domain

我可以在初始化文件中做什么?或者我可以用javascript嵌入.rb文件吗? 或请求对象的其他替代方案?

我尝试了许多不起作用的方法,例如

Rails.root 

我很难弄清楚。

谢谢你=)

【问题讨论】:

  • 您能写出您想要实现的目标,以便我们提出后续解决方案吗?

标签: ruby-on-rails initializer domain-name


【解决方案1】:

我刚刚将我的一个应用程序更改为暂存环境。我无法让套接字工作。

heroku config:add RAILS_ENV=staging --app myapp-staging
heroku config:add RACK_ENV=staging --app myapp-staging

然后我在我的环境文件夹中创建了一个 staging.rb 文件(我只是复制并粘贴了我的生产文件中的所有内容)并且 rails 能够推断出方法

Rails.env.staging?

在我的初始化程序中

【讨论】:

  • 这实际上根本没有回答原始问题。您将自己的答案标记为正确,因为这是一种变通方法,而不是问题的解决方案。
【解决方案2】:

类似:

require 'socket'

Socket.gethostname

【讨论】:

  • 嗯,当我尝试这样做时,我得到了一堆随机数,例如 45b636d4-2820-481b-bf44-d2546bb804fe
【解决方案3】:

您的应用程序只能在处理请求时确定它的域。 (因此它可用于request 中的控制器。)在初始化程序中,它在启动时执行一次,在任何请求得到服务之前,这是不可能的。 (除非您,维护者,提前知道域并在配置中指定它,例如在环境变量中。)

单个应用程序甚至可以在多个域上运行。那么每个请求可能有不同的域。

【讨论】:

    猜你喜欢
    • 2012-04-03
    • 2012-03-23
    • 2014-08-29
    • 1970-01-01
    • 2022-10-07
    • 1970-01-01
    • 2011-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多