内置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)
答案 0 :(得分:175)
将文件扩展名从.rb
更改为.rake
。
答案 1 :(得分:25)
在这种特定情况下,没有.rake
扩展名导致错误。但是,我今天遇到了与Rails 4.2应用程序相同的问题,这是因为我的rake任务没有desc
,所以请确保你是在编写自己的任务(即没有生成任务)您添加desc
。
有关详细信息:http://guides.rubyonrails.org/command_line.html#custom-rake-tasks
答案 2 :(得分:0)