Rails.env undefined в Rails 2
У меня есть более старое приложение, работающее с 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). Любая идея, что происходит?
Ответы
Ответ 1
Модуль Rails
всегда был в рельсах. Это не ново в 3, поэтому проверка, чтобы определить, является ли он определенным, является неправильным способом идти о вещах. Правильный способ определить, можете ли вы использовать Rails.env
выполнить Rails.respond_to? :env
.
Ответ 2
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