【发布时间】:2013-03-17 12:29:32
【问题描述】:
我正在查看官方 Rails 文档,该文档展示了如何使用“find_each”方法。这是他们给出的一个例子
Person.where("age > 21").find_each do |person|
person.party_all_night!
end
这一次处理 1000 条记录。但是,我仍然很困惑。这如何转化为 SQL?允许 Ruby 一次只能处理 1000 条记录的幕后发生了什么?
我有点困惑的原因是因为似乎 Person.where("age > 21") 会先执行,这将返回所有结果。
例如:
Person.where("age > 21").limit(10)
会先返回内存中的所有人,然后给你前 10 个,对吧?
【问题讨论】:
标签: ruby-on-rails ruby activerecord