即。当我在测试模式下运行应用程序(使用rails服务器)或者某些其他配置时,它在开发模式下运行(没有资产编译或缓存等),但当我将其部署到服务器时,它以生产模式运行。
应用如何确定要使用的环境配置?
答案 0 :(得分:9)
Rails通过按优先级顺序检查以下内容,从操作系统的环境变量中读取当前环境:
RAILS_ENV
ENV["RAILS_ENV"]
环境变量的值
ENV["RACK_ENV"]
"development"
通过查看Rails.env
方法的定义,您可以在Rails源代码中看到该行为:
def env
@_env ||= ActiveSupport::StringInquirer.new(ENV["RAILS_ENV"] || ENV["RACK_ENV"] || "development")
end
来源:https://github.com/rails/rails/blob/4-0-stable/railties/lib/rails.rb#L55-L57
这是您在编写Rails.env
以查找当前环境时调用的方法。