Ответ 1
Вы можете получить доступ к своим моделям и, фактически, всей своей среде, задав задачи, зависящие от задачи среды. Это позволяет делать что-то вроде run rake RAILS_ENV=staging db:migrate
.
См. " Пользовательские задачи Rake".
В соответствии с " Custom Rake Tasks":
desc "Pick a random user as the winner"
task :winner => :environment do
puts "Winner: #{pick(User).name}"
end
Насколько я знаю, :winner => :environment
означает "do environment
до winner
". Но что environment
? Когда я должен использовать его?
Я попробовал rake -T
, но в списке я не смог найти environment
.
Вы можете получить доступ к своим моделям и, фактически, всей своей среде, задав задачи, зависящие от задачи среды. Это позволяет делать что-то вроде run rake RAILS_ENV=staging db:migrate
.
См. " Пользовательские задачи Rake".
Он загружается в среду Rails, поэтому вы можете использовать свои модели, а что нет. В противном случае он понятия не имеет об этих вещах.
Итак, если вы сделали задачу, которая просто сделала puts "HI!"
, вам не нужно добавлять задачу :environment
к зависимостям. Но если вы хотите сделать что-то вроде User.find(1)
хорошо, что будет нужно.
Включение => :environment
подскажет, что Rake загрузит полную прикладную среду, предоставив соответствующую задачу для доступа к таким вещам, как классы, помощники и т.д. Без :environment
у вас не будет доступа к каким-либо из этих дополнений.
Также => :environment
сам не предоставляет никаких связанных с окружающей средой переменных, например. environment
, @environment
, RAILS_ENV
и т.д.