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

Я определил задачу rake следующим образом в файле с именем file_locker_task.rake

namespace :myspace do
   task :process => :environment do
      FileLocker.lock_files   
   end
end

Как выполнить эту команду rake из командной строки? Я пробовал:

rake myspace:process и rake process, но оба они вызывают ошибку следующим образом:

rake aborted!
Don't know how to build task 'process'

Ответ 1

  • Запустите rake -T -A из своего домашнего каталога Rails, чтобы увидеть все задачи, о которых знает rake. Ваш должен быть в этом списке для грабли для его запуска.
  • По умолчанию, в приложении Rails, рейк просматривает каталог lib/tasks и его подкаталоги для ваших файлов .rake. Проверь это. (Я подозреваю, что это проблема.)

Ответ 2

Согласно docs

Любой файл ruby ​​(включая другие rakefiles) может быть включен со стандартной командой Ruby require.

-

Дополнительные файлы рейка (с расширением файла ".rake" ) могут быть помещены в каталог rakelib, расположенный на верхнем уровне проекта (т.е. тот же каталог, который содержит основной файл Rake). Кроме того, проекты rails могут включать дополнительные файлы рейка в каталоге lib/tasks.