如何从environment.rb或初始化程序中强制执行RAILS_ENV =开发?

时间:2009-12-16 16:26:15

标签: ruby-on-rails ruby development-environment environment-variables

我们的主机不允许我们修改乘客配置文件(即apache配置或vhosts文件),但我们想在开发模式下运行rails。因此,我们必须在重新启动应用程序的rails中加载一个文件中指定环境(prod / dev / test)。有谁知道怎么做?

我们尝试了以下但没有运气:

#environment.rb (before any other code is executed)
  `RAILS_ENV=development`          # using back ticks
  ENV['RAILS_ENV'] = 'development' # assigning to a constant
  RAILS_ENV='development'          # as suggested by one of the answers, unfortunately does not work.

5 个答案:

答案 0 :(得分:6)

使用以下内容在environment.rb的顶部进行设置:

RAILS_ENV = 'development'

应该这样做。但是,乘客可能会超越这一点。

如果您无法访问乘客配置,但您可以访问虚拟主机,那么您也可以使用以下命令强行访问:

RailsEnv development

答案 1 :(得分:5)

为什么不更改production.rb配置以匹配development.rb中的设置?

答案 2 :(得分:2)

在envriornment.rb中你可以添加:

RAILS_ENV="production"
RAILS_ENV.freeze

当它试图稍后重置时,它会失败。

我不确定这会产生什么其他后果,或者它是否会渗透到铁轨内的任何地方。

答案 3 :(得分:1)

不要在ENV["RAILS_ENV"]中设置environment.rb,而是在boot.rb中执行此操作。 有关详细信息,请参阅here

答案 4 :(得分:-2)

RAILS_ENV ="生产" RAILS_ENV.freeze / ENV 这样,当它试图稍后重置时,它将失败。

我不确定此后会发生什么其他后果,或者它是否会渗透到铁轨内的任何地方。