console - rails - ¿Cómo ejecutar tareas de rake desde la consola?
rails generate controller (4)
Ejecutar tus tareas de Rake requiere dos pasos:
- Cargando rastrillo
- Cargando tus tareas de Rake
Te estás perdiendo el segundo paso.
Normalmente esto se hace en el Rakefile, pero tienes que hacerlo manualmente aquí:
require ''rake''
MyRailsApp::Application.load_tasks # <-- MISSING LINE
Rake::Task[''my_task''].invoke
(Asegúrese de reemplazar MyRailsApp
con el nombre de su aplicación Rails).
Quiero invocar mi tarea de rake desde la consola. ¿Es factible? Si es así, ¿cómo hacerlo?
He intentado esto en la consola:
require ''rake''
Rake::Task[''my_task''].invoke
pero me da este error:
RuntimeError: Don''t know how to build task
Es como si el rastrillo no puede encontrar la tarea.
Cualquier ayuda sería apreciada.
Gracias
Edición: estoy utilizando rieles 2.3.5
La forma más fácil de hacerlo es ejecutar% x [ comando ] desde el irb. No estoy seguro si lo que quieres lograr sin embargo.
%x[rake db:migrate]
EDITAR: Recomiendo ampliamente usar .invoke
como dice Daniel en la respuesta aceptada.
La forma más fácil es:
Rails.application.load_tasks
Rake::Task[''my_task''].invoke
Solo tenga en cuenta que si está en la consola de los rieles a través de los rails c
, puede llamar / ejecutar el método de tarea de rake mediante irb(main):001:0> TaskClassName.new.my_task