我有一个名为群组的模型,它是自我指涉的,其中有群体 - 父母和孩子在一起,由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(或其他分页器)这样的东西对它们进行分页,那会更好。
P.S。我尝试插入像has_many :products, through: :children
这样的内容,但我得到的只是Stack level is too deep
...
P.P.S。我可以创建以Hash收集所有产品的方法,但我无法按标题,价格等对产品列表进行排序。
答案 0 :(得分:0)
试试这个
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
has_many :child_products, :through => :children, :source => :products
validates :id, uniqueness: true
self.primary_key = :id
end