Ruby On Rails:如何在单个SQL查询中选择父模型的所有子代以及这些子代的Active Storage附件。有效记录

问题描述 投票:0回答:1

我正在寻找一个可以为我执行此操作的SQL查询,这样就不必对数据库进行太多请求。我要选择模型的所有子项以及属于这些子模型的活动存储附件。

class Category < ApplicationRecord
  has_many :infographics, dependent: :destroy
  has_many :videos, dependent: :destroy
  has_many :pdfs, dependent: :destroy


private 

def create_resources
    sorted_resources = (self.pdfs.with_attached_document + self.videos +  self.infographics.with_attached_photo).sort_by(&:created_at).reverse
end

end

我想收集我的类别模型的所有pdf,信息图表和视频的孩子。模型PDF和信息图具有附加的活动存储项,因此我希望在查询中包括这些项,以便我不会提出太多请求。

有人对我如何在单个请求中编写此代码有任何想法吗?

非常感谢您的帮助。

sql ruby-on-rails activerecord associations rails-activestorage
1个回答
0
投票

您可以直接查询与您的类别相关的ActiveStorage附件。一种方法可以通过一个查询完成您想要的操作:

© www.soinside.com 2019 - 2024. All rights reserved.