Я взял реализацию Rails.env
Я нашел здесь (нажав на "источник") и использовал его для инициализации модуля ::Rails
в начале config/schedule.rb
eval %Q(module ::Rails
def self.env
'#{@environment}' || ENV["RAILS_ENV"] || ENV["RACK_ENV"] || "development"
end
end
)
Это создает модуль Rails
и заставляет его среду возвращать то, что вы указали как --set environment=...
в командной строке whenever
, как предполагает автор сценария.
Тем не менее, всякий раз, когда @environment
устанавливает производство по умолчанию , поэтому это большое "или" может быть не совсем полезным.
Теперь вызов Rails.env
в скрипте Everyever будет работать. Что было более важно в моем случае, это также работало в других скриптах, которые я включил в schedule.rb
, например, тот, который загружал application.yml
.
P.S. Вызов eval
используется для доступа к @environment
, доступному в области действия скрипта schedule.rb
, внутри определения модуля.