Rails.env не определено в Rails 2 - PullRequest
       11

Rails.env не определено в Rails 2

0 голосов
/ 10 декабря 2010

У меня есть старое приложение, работающее на Ruby on Rails 2.2, и у меня возникают проблемы с получением гема, потому что он не может найти текущую среду с Rails.env:

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

Джемнастроен на использование Rails.env, когда определено Rails, и RAILS_ENV, если это не так.Но у меня, похоже, есть объект Rails без метода env (хотя я читал, что этот метод был добавлен в Rails 2).Есть идеи, что происходит?

Ответы [ 2 ]

4 голосов
/ 10 декабря 2010

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
2 голосов
/ 10 декабря 2010

Модуль Rails всегда был в рельсах.Это не новость в 3, поэтому проверка, определена ли она, - неправильный путь.Правильный способ определить, можете ли вы использовать Rails.env, это сделать Rails.respond_to? :env.

...