如何在初始化文件中获取域url,rails

时间:2012-05-21 03:46:17

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

我想知道是否有可能获得域名网址

localhost or myapp.heroku.com

来自初始化文件?

我相信

request.url

并且请求方法仅适用于控制器。有没有相当于javascript

document.domain

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

我尝试了许多不起作用的事情,例如

Rails.root 

并且我无法解决这个问题。

谢谢=)

3 个答案:

答案 0 :(得分:1)

类似的东西:

require 'socket'

Socket.gethostname

答案 1 :(得分: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 :(得分:0)

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

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