티스토리 뷰

알아 내면 작업은 다음과 같아야합니다.

namespace :test do
  task :new_task => :environment do
      puts Parent.all.inspect
        end
        end
        

=> :environment작업에 추가 종속성을 확인합니다.

-------------------

구성이 필요할 수 있습니다 (모든 필수 모델을 지정해야 함).

예 :

require 'config/environment'

또는 각각 별도로 요구할 수 있지만 AR이 설정되지 않은 등의 환경 문제가있을 수 있습니다.)

-------------------

레이크 작업을 작성하기 시작 하면 생성기를 사용하여 작업을 스텁 처리하십시오.

예를 들면 :

rails g task my_tasks task_one task_two task_three 

lib / tasks에서 생성 된 스텁 my_tasks.rake(분명히 자신의 네임 스페이스를 사용합니다.)이 생성됩니다. 이는 다음과 같습니다.

namespace :my_tasks do

  desc "TODO"
    task :task_one => :environment do 
      end  
      
        desc "TODO"
          task :task_two => :environment do 
            end  
            
              desc "TODO"
                task :task_three => :environment do 
                  end  
                  
                  end
                  

사용 하려는 특정 모델이 필요한 프로덕션 환경을 사용하지 않는 한 모든 레일 모델 등은 각 작업 블록 내에서 현재 환경 에 사용할 수 있습니다. 작업 본문 내에서이 작업을 수행하십시오. (IIRC는 Rails 버전에 따라 다릅니다.)

-------------------

새로운 루비 해시 구문 (Ruby 1.9)을 사용하면 환경이 레이크 작업에 다음과 같이 추가됩니다.

namespace :test do
  task new_task: :environment do
      puts Parent.all.inspect
        end
        end
        
-------------------

: environment 의존성은 매우 정확하게 호출되지만, rake는 여전히 당신의 모델이 의존하는 다른 보석에 대해 알지 못할 수 있습니다-내 경우에는 'protected_attributes'.

대답은 다음을 실행하는 것입니다.

bundle exec rake test:new_task

이렇게하면 환경에 Gemfile에 지정된 모든 gem이 포함됩니다.

-------------------

아래 명령을 사용하여 작업 생성 (작업 이름이있는 네임 스페이스) :

rails g task test new_task

논리를 추가하려면 아래 구문을 사용하십시오.

namespace :test do
  desc 'Test new task'
    task new_task: :environment do
        puts Parent.all.inspect
          end
          end
          

아래 명령을 사용하여 위의 작업을 실행하십시오.

bundle exec rake test:new_task  

또는

 rake test:new_task


출처
https://stackoverflow.com/questions/1904940
댓글
공지사항
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31