Как запустить задачу рейка по командной строке в рельсах
Я определил задачу 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.