Según " Tareas personalizadas de rake ":
desc "Pick a random user as the winner"
task :winner => :environment do
puts "Winner: #{pick(User).name}"
end
Hasta donde yo sé, los :winner => :environmentmedios "hacer environmentantes winner". Pero lo que es environment? ¿Cuándo debo usarlo?
Lo intenté rake -T, pero en la lista no pude encontrar environment.
ruby-on-rails
rake
Lai Yu-Hsuan
fuente
fuente

Respuestas:
Puede obtener acceso a sus modelos y, de hecho, a todo su entorno haciendo que las tareas dependan de la tarea del entorno. Esto te permite hacer cosas como
run rake RAILS_ENV=staging db:migrate.Ver " Tareas personalizadas de rake ".
fuente
Se carga en su entorno Rails para que pueda usar sus modelos y lo que no. De lo contrario, no tiene ni idea de esas cosas.
Entonces, si realizó una tarea que acaba de
puts "HI!"hacer, no necesita agregar la:environmenttarea a las dependencias. Pero si desea hacer algoUser.find(1)así, lo necesitará.fuente
La inclusión
=> :environmentle dirá a Rake que cargue por completo el entorno de la aplicación, dando a la tarea relevante acceso a cosas como clases, ayudantes, etc. Sin el:environment, no tendrá acceso a ninguno de esos extras.También
=> :environmenten sí no pone a disposición ninguna de las variables relacionadas con el ambiente, por ejemploenvironment,@environment,RAILS_ENV, etc.fuente