Rails.env在Rails 2中未定义

时间:2010-12-10 17:42:10

标签: ruby-on-rails methods gem environment undefined

我有一个运行Ruby on Rails 2.2的旧应用程序,我无法使用gem来工作,因为它找不到Rails.env的当前环境:

$ script/console
>> Rails.env
NoMethodError: undefined method `env' for Rails:Module
from (irb):1

宝石设置为在定义Rails.env时使用Rails,而在RAILS_ENV未定义时使用Rails。但我似乎有一个没有env方法的{{1}}对象(即使我读过Rails 2中添加了该方法)。知道发生了什么事吗?

2 个答案:

答案 0 :(得分:3)

在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

答案 1 :(得分:2)

Rails模块一直处于rails状态。它在3中并不新鲜,因此检查它是否被定义是错误的方法。确定您是否可以使用Rails.env的正确方法是Rails.respond_to? :env