我有一个模型,称为 Groups,它是自我参照的,其中有组 - 父母和孩子在一起,通过parent_id
. 所以我可以让一个组的孩子和产品连接到一个组,但是我怎样才能通过它的孩子获得父组的所有产品?这是我的模型:
class Group < ActiveRecord::Base
belongs_to :parent, class_name: 'Group', foreign_key: :parent_id
has_many :children, class_name: 'Group', foreign_key: :parent_id
has_many :products
validates :id, uniqueness: true
self.primary_key = :id
end
例如,如果我可以调用group.products
并获取所有产品,这些产品是该组的直接后代以及儿童组的所有产品,那就太好了。如果我可以用 Kaminari(或其他分页器)之类的东西对它们进行分页,那就更好了。
PS我试图插入类似的东西has_many :products, through: :children
,但我得到的只是Stack level is too deep
......
PPS 我可以创建方法来收集哈希中的所有产品,但我无法按标题、价格等对产品列表进行排序。