如何在find_in_batches rails中使用Eager loading(includes)



我在用户中有大量的行

User.includes(:comments)

由于用户集太大,在添加即时加载时会消耗大量内存。

所以在经历了几个解决方案之后,我以

结尾
User.select(:id).find_in_batches do |user|
users = User.where(id: user_id).includes(:comments)
end

是否有更好的方法来执行find_in_batches急切加载?

你可以这样使用find_in_batches:

User.where(id: user_ids).includes(:comments).find_in_batches do |users|
users.each do |user|
user.comment
end
end

每批自动eager_loadingcomments

最新更新