0

現在、Rails アプリで時計仕掛けを介して SuckerPunch ジョブをトリガーしています。

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にデプロイしています。

編集: わかりました、エラーがあります: Primary key not included in the custom select clause.

前もって感謝します!

4

1 に答える 1

0

データベース内のユーザー数が原因で、何らかの制限に達していると思われます。代わりに find_in_batch を使用してみましたか?

http://apidock.com/rails/ActiveRecord/Batches/find_each (デフォルトの batch_size が 1000 の find_in_batch を使用) http://apidock.com/rails/ActiveRecord/Batches/find_in_batches (最後の投稿に注意)

于 2016-11-03T20:57:18.173 に答える