开发者

Rails.env undefined in Rails 2

开发者 https://www.devze.com 2023-01-29 18:06 出处:网络
I have an older application running Ruby on Rails 2.2, and I\'m having trouble getting a gem to work because it can\'t find the current environment with Rai开发者_Go百科ls.env:

I have an older application running Ruby on Rails 2.2, and I'm having trouble getting a gem to work because it can't find the current environment with Rai开发者_Go百科ls.env:

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

The gem is set up to use Rails.env when Rails is defined, and RAILS_ENV when it's not. But I seem to have a Rails object without an env method (even though I read that method was added in Rails 2). Any idea what's going on?


Rails.env was introduced in Rails 2.3. You probably want to upgrade to Rails 2.3 if possible.

Otherwise, try this in a 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


The Rails module has always been in rails. It is not new in 3, so checking to see if it's defined is the wrong way to go about things. The correct way to determine if you can use Rails.env is to do Rails.respond_to? :env.

0

精彩评论

暂无评论...
验证码 换一张
取 消