Мы делаем обновление до Ruby on Rails 3 (например, половина мира прямо сейчас), и я старательно заменяю использование RAILS_ENV, например
RAILS_ENV == 'wibble'
# becomes
Rails.env.wibble?
Но я не так уверен в том, что делать с:
ENV["RAILS_ENV"] ||= 'production'
У нас есть вершина целой группы Rake задач и демонов, и идея в том, что вы можете пройти RAILS_ENV
в командной строке, но по умолчанию используется 'production', если он не прошел.
Я не уверен в новом способе выполнения Rails3. Так что пока мой rails:upgrade:check
сильно жалуется на это вторжение Rails2-ishness...
Я не знаю, если:
::Rails.env ||= 'production'
будет работать.
Существует ли Rails.env
в демоне?
Автоматически ли он автоматически заполняется значением RAILS_ENV, переданным в командной строке, или нам нужен новый способ вызова демонов?
Какая правильная мантра для этого?
Update:
Заглядывая в исходный код для Rails.env
,
def env
@_env ||= ActiveSupport::StringInquirer.new(RAILS_ENV)
end
мы можем вывести несколько вещей.
Во-первых, похоже, что RAILS_ENV
действительно существует, что означает, что он может быть установлен, и Rails.env
найдет его...
Если Rails действителен в контексте демона, то больше ничего не нужно делать. Если нет - тогда я мог бы просто не заботиться и использовать старый RAILS_ENV
, как и раньше.