Selon " Tâches de rake personnalisées ":
desc "Pick a random user as the winner"
task :winner => :environment do
puts "Winner: #{pick(User).name}"
end
Autant que je sache, les :winner => :environment
moyens «faire environment
avant winner
». Mais quoi environment
? Quand dois-je l'utiliser?
J'ai essayé rake -T
, mais je n'ai pas pu trouver dans la liste environment
.
ruby-on-rails
rake
Lai Yu-Hsuan
la source
la source
Réponses:
Vous pouvez accéder à vos modèles et, en fait, à l'ensemble de votre environnement en rendant les tâches dépendantes de la tâche d'environnement. Cela vous permet de faire des choses comme
run rake RAILS_ENV=staging db:migrate
.Voir " Tâches de râteau personnalisées ".
la source
Il se charge dans votre environnement Rails afin que vous puissiez réellement utiliser vos modèles et autres. Sinon, il n'a aucune idée de ces choses.
Donc, si vous avez créé une tâche qui vient de le
puts "HI!"
faire, vous n'avez pas besoin d'ajouter la:environment
tâche aux dépendances. Mais si vous souhaitez faire quelque chose commeUser.find(1)
bien, vous en aurez besoin.la source
L'inclusion
=> :environment
indiquera à Rake de charger complètement l'environnement de l'application, donnant à la tâche appropriée un accès à des éléments tels que des classes, des helpers, etc. Sans le:environment
, vous n'aurez accès à aucun de ces extras.En outre
=> :environment
elle - même ne rend pas disponible toutes les variables liées à l' environnement, par exempleenvironment
,@environment
,RAILS_ENV
, etc.la source