De acordo com " Custom Rake Tasks ":
desc "Pick a random user as the winner"
task :winner => :environment do
puts "Winner: #{pick(User).name}"
end
Pelo que eu sei, :winner => :environment
significa "fazer environment
antes winner
". Mas o que é environment
? Quando devo usar?
Tentei rake -T
, mas na lista não consegui encontrar environment
.
ruby-on-rails
rake
Lai Yu-Hsuan
fonte
fonte
Respostas:
Você pode obter acesso aos seus modelos e, na verdade, a todo o ambiente tornando as tarefas dependentes da tarefa do ambiente. Isso permite que você faça coisas como
run rake RAILS_ENV=staging db:migrate
.Consulte " Tarefas Rake Customizadas ".
fonte
Ele carrega em seu ambiente Rails para que você possa realmente usar seus modelos e quais não. Caso contrário, não tem ideia dessas coisas.
Portanto, se você fez uma tarefa que acabou de
puts "HI!"
fazer, não é necessário adicionar a:environment
tarefa às dependências. Mas se você quiser fazer algoUser.find(1)
assim, vai precisar.fonte
Incluir
=> :environment
dirá ao Rake para carregar completamente o ambiente do aplicativo, dando à tarefa relevante acesso a coisas como classes, auxiliares, etc. Sem o:environment
, você não terá acesso a nenhum desses extras.Também
=> :environment
em si não disponibilizar todas as variáveis relacionadas ao meio ambiente, por exemploenvironment
,@environment
,RAILS_ENV
, etc.fonte