113 votes

Quelle est la tâche "environnement" dans Rake?

Selon les " tâches de rake personnalisées ":

 desc "Pick a random user as the winner"
task :winner => :environment do
  puts "Winner: #{pick(User).name}"
end
 

Pour autant que je sache, :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 .

115voto

Sameer C Points 946

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 ".

39voto

MrDanA Points 6685

Il se charge dans votre environnement Rails afin que vous puissiez réellement utiliser vos modèles et ce qui ne l’est pas. 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.

31voto

Lars Levie Points 101

Y compris => :environment dira à Rake de charger complètement l’environnement d’application, donnant ainsi à la tâche pertinente l’accès à des éléments tels que des classes, des aides, etc. Sans les :environment , de ces extras.

De plus, => :environment ne rend pas disponible aucune variable liée à l'environnement, par exemple environment , @environment , RAILS_ENV , etc.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X