为什么在Rails 3中没有发现lib/tasks中的自定义rake任务?



内置rake任务工作得很好,但我的新自定义任务,在Project/lib/tasks/payments中。Rb不加载:

namespace :payments  do
  desc "Tally payments at the end of the month"
  task :compute => :environment do
    BillingPeriod.compute_new_period
  end
end
$ rake payments:compute
(in /Users/rob/Code/Apps/skyfarm)
rake aborted!
Don't know how to build task 'payments:compute'

如果我加载文件application.rb:

require 'lib/tasks/payments.rb'

…但是它会破坏其他东西:

$ rails s
./lib/tasks/payments.rb:1: undefined method `namespace' for main:Object (NoMethodError)

将文件扩展名由.rb改为.rake

在这个特定的情况下,没有.rake扩展导致错误。然而,我今天有一个Rails 4.2应用程序同样的问题,这是因为我没有一个desc为我的rake任务,所以要确保如果你写你自己的任务(即不生成一个),你添加一个desc

更多信息:http://guides.rubyonrails.org/command_line.html#custom-rake-tasks

根据Rails指南2.10自定义Rake任务

自定义rake任务具有.rake扩展名,并放置在Rails.root/lib/tasks中。

但是你有.rb扩展

相关内容

  • 没有找到相关文章

最新更新