我们正在对Ruby on Rails 3进行升级(就像现在世界上一半的人一样),例如,我一直在努力替换RAILS_ENV的用法
RAILS_ENV == 'wibble'
# becomes
Rails.env.wibble?
但我不太确定该怎么做:
ENV["RAILS_ENV"] ||= 'production'
我们把它放在一大堆Rake任务和守护进程的顶部,其想法是您可以在命令行上传递RAILS_ENV
,但如果没有传递,它将缺省为“production”。
我不确定新的Rails3-合适的方式来做这件事。所以现在我的rails:upgrade:check
强烈抱怨Rails2的入侵……
我不知道是否:
::Rails.env ||= 'production'
都会起作用的。
守护进程中是否存在Rails.env
?
它是自动预先填充命令行中传递的RAILS_ENV的值,还是需要一种新的调用守护进程的方式?
正确的咒语是什么?
更新:
查看Rails.env
的源代码,
def env
@_env ||= ActiveSupport::StringInquirer.new(RAILS_ENV)
end
我们可以推断出很多东西。
首先,看起来RAILS_ENV
实际上仍然存在--这意味着它可以被设置,并且Rails.env
会找到它……
如果Rails在守护进程的上下文中是有效的,那么就不需要再做任何事情了。如果没有-那么我就可以不太在意了,像以前一样使用旧的RAILS_ENV
。
https://stackoverflow.com/questions/4017069
复制相似问题