[英]Rails.env undefined in Rails 2
我有一个运行Ruby on Rails 2.2的较旧的应用程序,但是我无法使gem正常工作,因为它无法通过Rails.env
找到当前环境:
$ script/console
>> Rails.env
NoMethodError: undefined method `env' for Rails:Module
from (irb):1
当定义Rails
时,将gem设置为使用Rails.env
,将其设置为RAILS_ENV
。 但是我似乎有一个没有env
方法的Rails
对象(即使我阅读了Rails 2中添加的方法)。 知道发生了什么吗?
Rails 2.3中引入了Rails.env
。 如果可能,您可能想升级到Rails 2.3。
否则,请在config/initializers/rails_env.rb
:
require 'active_support/string_inquirer'
def Rails.env
@_env ||= ActiveSupport::StringInquirer.new(ENV["RAILS_ENV"] || ENV["RACK_ENV"] || "development")
end
Rails
模块始终处于导轨中。 它不是3中的新功能,因此检查是否已定义是处理问题的错误方法。 确定是否可以使用Rails.env
的正确方法是执行Rails.respond_to? :env
Rails.respond_to? :env
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.