【发布时间】:2014-09-25 02:21:56
【问题描述】:
我们在控制器中构建一些对象:
@sites = Site.find(:all, :conditions => conditions, :order => 'group_id ASC')
然后在视图中(当前),我们正在执行以下操作:
@sites.each do |site|
%p Site Name
= site.name
- actual = site.estimates.where('date<?', Date.today).sum(:actual_cost)
%p
= actual
end
基本上是这样的。
当然,这会触发对站点的查询,然后返回对 N 个站点的查询。我知道与 @sites = Site.find(:all, :include => :estimates) 的即时加载关联,但在这种情况下,这并不重要,因为我们正在对查询进行 SUM,这看起来很特别。
我将如何急切地加载 SUM,以免收到所有疯狂的查询?目前已经超过600...
【问题讨论】:
标签: mysql ruby-on-rails-3 activerecord eager-loading