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(使用 find_in_batch,默认 batch_size 为 1000) http://apidock.com/rails/ActiveRecord/Batches/find_in_batches(注意最后一篇文章)

于 2016-11-03T20:57:18.173 回答