首页 > 解决方案 > 从收藏中随机获取 9 张照片

问题描述

我的联想如下:

收藏:

has_many :children, class_name: "Collection", foreign_key: "parent_id"
belongs_to :parent, class_name: "Collection", foreign_key: "parent_id", optional: true
has_many :albums, dependent: :nullify

专辑:

has_many :photos, dependent: :destroy
belongs_to :collection, optional: true

照片:

belongs_to :album

我希望实现的是,从一个集合中,直接从调用集合或任何子集合中的任何相册中提取 9 张随机照片。

我现有的方法似乎只从调用 Collection 的直接子专辑中提取,这并不是我想要的效果,但不确定如何调整它。

  def photos_for_icon
    Photo.joins(:album).where(albums: { collection_id: self.id }).order("RANDOM()").first(9)
  end

有人有想法么?

谢谢,尼尔

标签: ruby-on-railsactiverecord

解决方案


推荐阅读