【发布时间】:2015-08-22 01:04:05
【问题描述】:
ENV['RAILS_ENV'] 和 ENV['RACK_ENV'] 正在开发中。返回development。在登台或生产中,它返回nil。我们是否应该为暂存环境和生产环境显式设置这两个环境变量?
Rails 是否希望这样设置?
我还注意到以下内容。我有这个初始化程序:config/initializers/01_redis.rb:
redis_connection = Redis.new(host: URI.parse(ENV['REDIS_SERVER_URL']).host, port: URI.parse(ENV['REDIS_SERVER_URL']).port)
$redis = Redis::Namespace.new(Rails.env.to_sym, redis: redis_connection)
在暂存中检查此文件时。 Rails.env.to_sym 被解释为:development。此外,在 Rails 控制台中运行 Rails.env,在暂存时返回 staging。在初始化 Rails 应用程序之前,Rails 可能需要 ENV['RAILS_ENV'] 和 ENV['RACK_ENV']。
你有什么想法?
【问题讨论】:
-
如果您使用的是linux,您可以运行
envcmd 并检查它是否已定义?正在开发中。 -
@Nithin 在 OSX 中,运行
env | grep ENV什么都不返回 -
不知道
OSX你必须试试env | grep RAILS_ENV。在 ubuntu 中,.bashrc是我用来设置环境变量的地方。您可能希望在登台服务器上进行此修复。 -
同样的结果。顺便说一句,
grep ENV与ENV匹配。这意味着,如果在env中定义了RAILS_ENV,它就会显示出来。那么这是否意味着我需要显式设置这两个ENV变量以用于暂存和生产? -
哦,我错过了,是的,你是对的......
标签: ruby-on-rails ruby-on-rails-4