Как запускать задачи рейка с консоли? - программирование
Подтвердить что ты не робот

Как запускать задачи рейка с консоли?

Я хочу вызвать мою команду rake с консоли. Это выполнимо? если да, то как это сделать?

Я попробовал это на консоли:

require 'rake'
Rake::Task['my_task'].invoke

но он дает мне эту ошибку:

RuntimeError: Don't know how to build task

он, как грабли, не может найти задачу.

любая помощь будет оценена.

Спасибо

Изменить: я использую рельсы 2.3.5

4b9b3361

Ответ 1

Выполнение ваших задач Rake требует двух шагов:

  1. Грабли погрузочные
  2. Загрузка ваших задач 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

Работал на меня!