【发布时间】:2015-07-12 15:44:32
【问题描述】:
在 Rails 中,find_each 和 where 都用于从 ActiveRecord 支持的数据库中检索数据。
您可以将查询条件传递给where,例如:
c = Category.where(:name => 'Ruby', :position => 1)
您可以将批量大小传递给find_each,例如:
Hedgehog.find_each(batch_size: 50).map{ |p| p.to_json }
但是下面两个代码有什么区别呢?
# code 1
Person.where("age > 21").find_each(batch_size: 50) do |person|
# processing
end
# code 2
Person.where("age > 21").each do |person|
# processing
end
code 1 是否每次批量检索 50 个元组,code 2 一次检索所有元组?欢迎详细说明。
我的看法是:
-
where和find_each都可以用于批量检索,但用户可以在使用find_each时定义批量大小。 -
find_each不支持传递查询条件。
如果我的理解有误,请纠正我。
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4 activerecord