2012-05-21 2 views
2

사용자 정의 레이크 테스트를 실행하려고합니다. 코드는 다음과 같습니다.사용자 정의 레이크 작업 오류

task :test => :environment do 
    user = User.first 
    puts "Winner: #{user.email}" 
    puts "test" 
end 

하지만 실행하면이 오류가 발생합니다.

$ rake test 

rake aborted! 
undefined method `email' for nil:NilClass 

Tasks: TOP => test 
(See full trace by running task with --trace) 

사용자 클래스에 액세스 할 수없는 이유에 대한 통찰력이 있으십니까? 내가 가지고있는 것 : 거기에 환경?

+0

nevermind. 커스텀 레이크 작업의 이름을 "테스트"하지 마십시오. – styliii

답변

1

을 시도 할 수

User.first 

에 대한 사용자를하지 않는 몇 가지 이유입니다 최근에는 비슷한 id을 얻으려고했는데 매핑을 사용하기 전까지이 작업을 수행 할 수 없었습니다. 이것을 시도하십시오 :

task :test => :environment do 
    email = User.first.map(&:email) 
    puts "Winner: #{email}" 
    puts "test" 
end 

나는 이것을하는 적당한 방법이다 말하고 있지 않다, 그러나 저를 위해 작동했다.

0

이 오류가 발생하는 이유는 당신은 디버거를 사용하여이 작업을 확인하거나 단순히 내가에서 실행

User.first.nil?