2010-05-27 4 views
0

나는 레이크 작업을 쓰고 있는데, 어느 시점에서는 사용자 지정 YAML 파일 가져 오기 방법을 사용하여 데이터베이스를 시드합니다.레이크 작업에서 ActiveRecord :: Base.transaction 사용 하시겠습니까?

desc "Seed the database with production/ data." 
task :production => :environment do  
    import_yaml 'seed/production' 
end 

가져 오기 코드의 한 시점에서, 내가 가진 : 레이크 작업을 실행하려고

ActiveRecord::Base.transaction do 

예외 :

레이크 작업과 같은

You have a nil object when you didn't expect it! 
You might have expected an instance of ActiveRecord::Base. 
The error occurred while evaluating nil.[] 

스택 추적은 코드에서 앞서 언급 한 행을 가리 킵니다.

레이크 작업 중에 ActiveRecord :: Base를 인스턴스화하는 방법이 있습니까?

감사합니다.

+0

의에 액세스 할 수 없습니다? – Salil

+0

코드 또는 적어도 샘플을 포함해야합니다. 또한 질문 제목은 문제 또는 해결 방법과 관련이 없습니다. – rpbaltazar

+0

맞습니까? 7 년 후 나는 실제 문제/해결책이 무엇인지를 기억하지 못한다. 할 수 있으면이 질문을 삭제 하겠지만 누군가가 대답을 썼기 때문에 나를 허용하지 않을 것입니다. –

답변

3

레이크 작업에 '환경'을 포함하지 않았습니까? =>없이

rake task can't access rails.cache

task (:my_rake_task => :environment) do 
    # .... 
end 

: 환경 당신은 당신의 레일 애플 리케이션 모델 어떤 코드의 사랑에 대한

관련 문제