3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

自作したrakeタスクをrailsが認識してないときに疑うこと

Posted at

発生した問題

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 コマンドを使っていれば、こんな変なハマり方しなかったと思います。反省。

--

参考: カスタムRakeタスク | Railsガイド

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?