発生した問題
rake タスクを作成して実行しようとしたら、そんなタスク知らん(Don't know how to build task 'xxxxx')と突っぱねられてしまいました。
$ bundle exec rails my_awesome_task
rails aborted!
Don't know how to build task 'my_awesome_task' (See the list of available tasks with `rails --tasks`)
確かに rails --tasks
に挙がってない。
$ bundle exec rails --tasks | grep my_awesome_task
(該当なし)
なんとなく rake -T
も試したけどやっぱり見つからない。
$ bundle exec rake -T | grep my_awesome_task
(該当なし)
以下がそのタスクです。
lib/my_awesome_task.rb
desc 'すごいタスク'
task :my_awesome_task do
puts 'すごいぞー \(^o^)/'
end
チェック1:配置場所は正しいか?
(Rails.root)/lib/tasks
配下に置かないとダメでした。
修正前: lib/my_awesome_task.rb
↓
修正後: lib/tasks/my_awesome_task.rb
チェック2:拡張子は正しいか?
Rakeタスクの拡張子は .rake
じゃないとダメでした。
修正前: lib/tasks/my_awesome_task.rb
↓
修正後: lib/tasks/my_awesome_task.rake
この2つを直したら無事に動きました。
ちなみに
タスクを作るときに rails generate task
コマンドを使っていれば、こんな変なハマり方しなかったと思います。反省。
--