内置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
扩展