【问题标题】:Rails include with optionsRails 包含选项
【发布时间】:2010-12-02 06:23:12
【问题描述】:

是否可以将 ActiveRecord :include 限制为只提取一条记录?

Item.find(:all,
    :include => [ :external_ratings, :photos => LIMIT 1 ])

我有一个项目列表,每个项目有 5 到 15 张照片。我想将照片 ID 加载到内存中,但我不需要所有这些。我只想预览第一个。

有没有办法用 ActiveRecord 做到这一点?

【问题讨论】:

    标签: sql ruby-on-rails activerecord join include


    【解决方案1】:

    我不打算调查详细的查询,但我认为find_by_sql 适合这种特殊情况。

    【讨论】:

      【解决方案2】:

      我不相信可以直接做,但由于查找一条记录只是一个查询,为什么不在包含之外做呢?

      例如

      first_photo = Photo.find(records.first.photo_id)
      

      在你的主要find之后

      【讨论】:

      • 我相信这会有效,但如果我有 50 个条目,则必须执行 50 次不同的操作。它现在与包含一起工作正常,它只是将比我需要的更多信息拉入内存。 ;-(
      • 你能澄清你想要的问题吗?您要么想要 1 条记录,要么想要 50 条记录,但不清楚您要做什么。
      • 对不起,我改了一点。但基本上我正在检索项目列表,每个项目都有多个图像和评级。我希望包含所有评分,但我只需要为每个项目提供一张图片,基本上是预览。
      • 每件商品的照片是否有排序?
      • 我想在照片上使用 :include 不会占用太多空间,我只是认为可能有一种简单的方法来限制它。
      猜你喜欢
      • 2011-05-09
      • 2011-05-02
      • 1970-01-01
      • 2018-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多