developer tip

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

optionbox 2020. 10. 28. 08:01
반응형

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


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)

파일 확장자를 .rb에서 .rake.


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

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


Rails 가이드 2.10 Custom Rake Tasks에 따라

커스텀 레이크 작업은 .rake 확장자를 가지며 Rails.root / lib / tasks에 있습니다.

그러나 당신은 .rb연장 있습니다.

참고 URL : https://stackoverflow.com/questions/5689653/why-is-my-custom-rake-task-in-lib-tasks-not-discovered-in-rails-3

반응형