Rails 3에서 lib / tasks의 사용자 정의 레이크 작업이 발견되지 않는 이유는 무엇입니까?


78

Build-in 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)

Rails를 사용 하지 않는 사람이 여기에 올 경우 : .rake파일을 rakelib.
Joseph Mansfield

답변:



33

이 특정 경우에는 .rake확장자가 없으면 오류가 발생했습니다. 그러나 오늘 Rails 4.2 앱에서 동일한 문제가 발생했습니다. descrake 작업에 대한 작업 이 없었기 때문입니다. 자신의 작업을 작성 중인지 (즉 생성하지 않는 경우) desc.

자세한 정보 : http://guides.rubyonrails.org/command_line.html#custom-rake-tasks


1
However귀하의 답변을 보았을 때 귀하의 답변이 내 문제를 해결할 것이라는 것을 이미 알고있었습니다.) +1
Aleks

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.