組み込みの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アプリで今日も同じ問題が発生しました。これは、rakeタスクにdesc
がなかったためです。 desc
を追加する独自のタスクを作成する(つまり、タスクを生成しない)。
詳細: http://guides.rubyonrails.org/command_line.html#custom-rake-tasks