【问题标题】:Rails find_each is not workingRails find_each 不工作
【发布时间】:2017-03-17 12:54:05
【问题描述】:

目前,我正在通过我的 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

提前致谢!

【问题讨论】:

    标签: ruby-on-rails ruby activerecord heroku clockwork


    【解决方案1】:

    我怀疑您由于数据库中的用户数量而达到了某种限制。您是否尝试过使用 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(注意最后一条)

    【讨论】:

    • 我尝试使用 find_in_batch 但它产生了同样的错误。数据库中只有两个用户。
    • 你是如何执行代码的,结果如何?只是主键错误吗?
    • 就是那个错误。我怀疑我的架构/模型有什么问题,所以我调整了一些东西。 Users.all.each 正在运行 - 明天将尝试 Users.find_each。
    猜你喜欢
    • 1970-01-01
    • 2015-07-12
    • 2011-08-06
    • 2014-10-16
    • 2017-04-29
    • 2017-05-16
    • 2018-10-08
    • 2012-03-24
    • 2014-01-30
    相关资源
    最近更新 更多