ruby on rails - generate - Rails cómo ejecutar la tarea de rake
ruby on rails rake (6)
¿Has probado el rake reklamer:iqmedier
?
Mis tareas de rastrillo personalizadas están en el directorio lib, no en lib / tasks. No estoy seguro si eso importa.
¿Cómo ejecuto este archivo de rastrillo en terminal / consola?
mi statistik.rake en lib / tareas
desc "Importer statistikker"
namespace :reklamer do
task :iqmedier => :environment do
...
end
task :euroads => :environment do
...
end
task :mikkelsen => :environment do
...
end
task :orville => :environment do
...
end
end
A veces, tus tareas de rake no se cargan en la consola, en ese caso puedes probar los siguientes comandos
require "rake"
YourApp::Application.load_tasks
Rake::Task["Namespace:task"].invoke
Aquí hay un muy buen tutorial sobre la ejecución de tareas de rake que encontré útil ...
En los carriles 4.2 los métodos anteriores no funcionaron.
- Ve a la terminal.
- Cambie el directorio a la ubicación donde está presente su archivo de rastrillo.
- ejecuta rake task_name.
- En el caso anterior, ejecute rake iqmedier - solo ejecutará la tarea iqmedir.
- Ejecutar rake euroads - se ejecutará sólo la tarea euroads.
Para ejecutar todas las tareas en ese archivo, asigne lo siguiente dentro del mismo archivo y ejecute rake all
task :all => [:iqmedier, :euroads, :mikkelsen, :orville ] do #This will print all the tasks o/p on the screen end
No debe ejecutar tareas de Rake en la consola de Rails, sino en la Terminal / Símbolo del sistema ejecutando
rake task_name
Si realmente debes ejecutar una tarea de Rake en Ruby, deberías poder hacer:
Rake::Task[''task_name''].invoke
pero eso generalmente solo se hace en una tarea de Rake para ejecutar otra.
Para ejecutar varias tareas en el mismo espacio de nombres con una sola tarea, cree la siguiente tarea nueva en su espacio de nombres:
task :runall => [:iqmedier, :euroads, :mikkelsen, :orville ] do
# This will run after all those tasks have run
end
Rake::Task[''reklamer:orville''].invoke
o
Rake::Task[''reklamer:orville''].invoke(args)