Here是关于使用Rails.env
代替RAILS_ENV
的讨论,因为它正在被删除。
我不太明白在delayed_job
这样的独立脚本中要做什么,你专门传入RAILS_ENV
:
RAILS_ENV=test script/delayed_job start
答案 0 :(得分:3)
最新的Configuring Rails Applications Guide说:
ENV["RAILS_ENV"]
定义了Rails将在其下运行的Rails环境(生产,开发,测试等)。
所以设置 RAILS_ENV
环境变量来选择环境很好,但你应该看Rails.env
获取当前环境。
def env
@_env ||= ActiveSupport::StringInquirer.new(ENV["RAILS_ENV"] || ENV["RACK_ENV"] || "development")
end
您还会注意到它会查看RACK_ENV
环境变量以及RAILS_ENV
。另请注意StringInquirer包装,以便您可以说Rails.env.production?
而不是(ENV['RAILS_ENV'] || ENV['RACK_ENV'] || 'development') == 'production'
。