実行を拒否するこの単純なrakeタスクがあります。なぜそれが正しいように見えるのかわかりません。おそらく私が犯した非常に単純な間違いを誰が特定できるのでしょうか?ありがとうございました!
/ lib/tasks/reindex.rb:
namespace :db do
desc "Tire reindex profiles"
task :reindex => :environment do
system "cd #{Rails.root} && rake environment tire:import CLASS='Profile' FORCE=true"
end
end
エラー:
rake db:reindex
rake aborted!
Don't know how to build task 'db:reindex'
ファイルの名前をreindex.rake
に変更すると、動作するはずです。
タスク名の前に名前空間を置くのを忘れた場合にも、このエラーが発生する可能性があります。 (つまり、db:reindexの代わりに:reindex)
Rakeタスクのファイル拡張子は「.rake」でなければなりません。
ファイルに「.rb」という名前を付けた場合、rakeはそれを見つけられず、ここで終わるまで数分間自分の正気を疑います。
ファイル名ではなく、タスクの名前を呼び出すことを忘れないでください。一番いいのは、同じ名前が付けられていることです。
このエラーは、名前空間名がアンダースコアになったために発生します
As is: deploy_app (not work)
To be: deployapp (working)