Как запускать задачи рейка с консоли?
Я хочу вызвать мою команду rake с консоли. Это выполнимо? если да, то как это сделать?
Я попробовал это на консоли:
require 'rake'
Rake::Task['my_task'].invoke
но он дает мне эту ошибку:
RuntimeError: Don't know how to build task
он, как грабли, не может найти задачу.
любая помощь будет оценена.
Спасибо
Изменить: я использую рельсы 2.3.5
Ответы
Ответ 1
Выполнение ваших задач Rake требует двух шагов:
- Грабли погрузочные
- Загрузка ваших задач Rake
Вы пропускаете второй шаг.
Обычно это делается в Rakefile, но вы должны сделать это вручную здесь:
require 'rake'
Rails.application.load_tasks # <-- MISSING LINE
Rake::Task['my_task'].invoke
Ответ 2
Самый простой способ сделать это - запустить% x [command] из irb. Я не уверен, что вы хотите достичь.
%x[rake db:migrate]
EDIT: Я настоятельно рекомендую использовать .invoke
, как говорит Дэниел в принятом ответе.
Ответ 3
Самый простой способ это:
Rails.application.load_tasks
Rake::Task['my_task'].invoke
Ответ 4
Просто обратите внимание, что если вы находитесь в консоли rails через rails c
вы можете просто вызвать/запустить метод задачи rake по irb(main):001:0> TaskClassName.new.my_task
Ответ 5
Я использую rails 5.xx
, и мне нужно было сделать rails console
той же формы.
У меня есть задание на грабли here-
app/lib/task_to_execute.rake
Вот эта команда работала для me-
Загрузить Rails.application.load_tasks
Rake::Task['task_to_execute:task_name'].invoke
Работал на меня!