2016-11-03 6 views
0

현재, 레일즈 앱의 시계 작업을 통해 SuckerPunch Job을 트리거하고 있습니다.레일즈 find_each가 작동하지 않습니다.

User.find_each do |user| 
    puts "Found user: #{user.name}!" 
end 

# Doesn't work, too. 
User.all.each do |user| 
    puts "Found user: #{user.name}!" 
end 

그러나 사용자를 검색 할 때 실행이 멈 춥니 다. 콘솔에 Enumerator (User.find_each.inspect)을 인쇄하면 사용자가 표시됩니다. 블록이 작동하지 않는 이유는 무엇입니까? Rails 컨텍스트가 누락 될 수 있습니까?

몇 시간 동안 나를 미치게했습니다. 나는 Heroku에 배치 중입니다, btw.

편집 : 나는 오류가 있음을 알아 냈습니다 : Primary key not included in the custom select clause.

미리 감사드립니다.

답변

0

DB에있는 사용자 수에 따라 일종의 제한이 있다고 생각합니다. 대신 find_in_batch를 사용해 보셨습니까?

http://apidock.com/rails/ActiveRecord/Batches/find_each

+0

내가 대신 find_in_batch 사용하여 시도했지만이 같은 오류가 발생 (마지막 게시물 주) http://apidock.com/rails/ActiveRecord/Batches/find_in_batches (1000의 기본 BATCH_SIZE와 find_in_batch를 사용). 데이터베이스에는 두 명의 사용자 만 있습니다. – logineimer

+0

코드를 어떻게 실행하고 있습니까? 그 결과는 무엇입니까? 기본 키 오류입니까? – whodini9

+0

그저 오류입니다. 내 스키마/모델에서 뭔가가있는 것 같아서 몇 가지를 조정했습니다. Users.all.each는 현재 작동 중입니다. 내일 Users.find_each를 시도 할 것입니다. – logineimer

관련 문제