简单的rails rake任务拒绝运行时出现错误“不知道如何构建任务”,为什么?

时间:2012-10-15 19:57:55

标签: ruby-on-rails rake rake-task

我有这个简单的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'

5 个答案:

答案 0 :(得分:85)

将您的文件重命名为reindex.rake,它应该有效。

相关:How to build task 'db:populate'

答案 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)