gpt4 book ai didi

ruby-on-rails - :select with find_in_batches in rails

转载 作者:行者123 更新时间:2023-12-03 16:16:55 24 4
gpt4 key购买 nike

如何在 find_in_batches 中包含 :select 子句。以下抛出错误“Mysql::Error: Unknown column 'users.id' in 'field list': 。

Post.find_in_batches(:batch_size => 100, :select => "users.id, users.name, categories.name, posts.id", :include => [:user, :category]) do |group|
#stuff with group
end

最佳答案

因此,如果您正在考虑使用 find_in_batches,这可能意味着您有很多记录要处理,并且您很可能只希望从数据库中将选择的字段返回给您。

在 Rails 3/4 中,您可以将 find_in_batches 与任何其他类型的 ActiveRecord::Relation 方法(或至少,大多数……我没有亲自测试过所有方法)链接起来。

这可能就是你要找的

User.select(:id).find_in_batches(:batch_size => 100) do |group|
# do something with group...
# like print all the ids
puts group.map(&:id)

end

如果您在控制台中尝试此操作,它会生成这样的 SQL...
 SELECT id FROM `users` WHERE (`users`.`id` > 895846) ORDER BY `users`.`id` ASC LIMIT 100

在此处查看更多信息: http://api.rubyonrails.org/classes/ActiveRecord/Batches.html

关于ruby-on-rails - :select with find_in_batches in rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3664024/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com