Selon " Custom Rake Tasks ":
desc "Pick a random user as the winner"
task :winner => :environment do
puts "Winner: #{pick(User).name}"
end
Pour autant que je sache, le :winner => :environment
signifie "faire environment
avant winner
". Mais qu'est-ce que environment
? Quand devrais-je l'utiliser?
J'ai essayé rake -T
, mais dans la liste, je n'ai pas trouvé environment
.
Vous pouvez accéder à vos modèles et, en fait, à tout votre environnement en rendant les tâches dépendantes de la tâche de l'environnement. Cela vous permet de faire des choses comme run rake Rails_ENV=staging db:migrate
.
Voir " tâches de rake personnalisées ".
Il se charge dans votre environnement Rails) afin que vous puissiez réellement utiliser vos modèles et quoi d'autre. Sinon, il n'a aucune idée de ces choses.
Donc, si vous avez créé une tâche qui vient de faire puts "HI!"
, Vous n'avez pas besoin d'ajouter la tâche :environment
Aux dépendances. Mais si vous souhaitez faire quelque chose comme User.find(1)
bien, vous en aurez besoin.
Comprenant => :environment
indiquera à Rake de charger tout l’environnement de l’application, donnant ainsi à la tâche pertinente l’accès à des éléments tels que des classes, des aides, etc. Sans le :environment
, vous n’avez accès à aucun de ces extras.
Également => :environment
lui-même ne met à disposition aucune variable liée à l'environnement, par ex. environment
, @environment
, Rails_ENV
, etc.