【发布时间】:2011-09-22 14:03:59
【问题描述】:
在预先加载的文档中指出:
如果您使用指定的 :limit 选项急切加载关联,它将被忽略,并返回所有关联的对象:
class Picture < ActiveRecord::Base
has_many :most_recent_comments, :class_name => 'Comment',
:order => 'id DESC', :limit => 10
end
Picture.find(:first, :include => :most_recent_cmets).most_recent_cmets # => 返回所有关联的 cmets。
如果是这种情况,那么实现加载“限制”的最佳方法是什么?
假设我们急于将最后 10 篇博文加载到博客的首页,我们显然不希望它们全部如此,是否应该指定博文集合的限制和顺序?
除此之外,是否可以对深度加载的元素指定相同的条件 - 例如,仅在每篇博文中显示前三个 cmets?
Blog.find(:blog_id, :include => {:posts => :comments } )
【问题讨论】:
标签: ruby-on-rails optimization activerecord eager-loading