我有这个简单的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'
答案 0 :(得分:85)
将您的文件重命名为reindex.rake
,它应该有效。
答案 1 :(得分:14)
如果忘记将命名空间放在任务名称之前,也会出现此错误。 (即:reindex而不是db:reindex)
答案 2 :(得分:2)
不要忘记检查您是否调用了任务的名称而不是文件名。 最好的是它们的名字相同。
答案 3 :(得分:1)
rake任务的文件扩展名必须为'.rake'。
如果您将文件命名为“ .rb”,那么rake将找不到该文件,并且您将在几分钟内质疑自己的理智。
答案 4 :(得分:0)
发生此错误是因为名称空间名称下划线
As is: deploy_app (not work)
To be: deployapp (working)