【发布时间】:2011-11-28 08:12:09
【问题描述】:
我有一个包含许多图片的文章表
图像按每篇文章排序,第一个排序的图像是文章缩略图。
在文章控制器索引方法中,我目前正在执行以下操作以限制 2 个活动记录查询;
@articles = Article.where(:active => true).includes(:images)
并访问缩略图:
# article model
def thumb
self.images.first if self.images
end
问题是这只有 2 个查询,但如果每篇文章有 10 张图片并且我在每页上有 50 篇文章,那么我将 500 行图片加载到内存中。
在活动记录中是否有更有效的方法来执行此操作。希望不必使用 find_by_sql
【问题讨论】:
-
图片是按什么排序的?
-
我有一个名为 ordinal 的列,它只是一个 int,所以我希望它们按序数 ASC 排序,实际上我只关心第一个是拇指(序数 = 1)。谢谢
-
查看@Delba 的更新答案。他的新解决方案比我提出的要好。
标签: ruby-on-rails ruby ruby-on-rails-3 activerecord