Rails.env在Rails 2中未定义
我有一个运行Ruby on Rails 2.2的旧应用程序,我无法使用gem来工作,因为它无法使用Rails.env
找到当前环境:
$ script/console >> Rails.env NoMethodError: undefined method `env' for Rails:Module from (irb):1
gem定义为在定义Rails
时使用Rails.env
,而在不定义时使用RAILS_ENV
。 但我似乎有一个没有env
方法的Rails
对象(即使我读过Rails 2中添加了该方法)。 知道发生了什么事吗?
Rails
模块一直在使用rails。 它在3中并不新鲜,因此检查它是否被定义是错误的方法。 确定是否可以使用Rails.env
的正确方法是执行Rails.respond_to? :env
Rails.respond_to? :env
Rails.env
是在Rails 2.3中引入的。 如果可能,您可能希望升级到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