我尝试创建一个类别/子类别树,然后搜索某个类别/子类别下的项目。我对如何做到这一点感到困惑。我有以下代码改编自this SO answer:
class Category
has_and_belongs_to_many :child_categories, class_name: "Category", inverse_of: :parent_categories
has_and_belongs_to_many :parent_categories, class_name: "Catgeory", inverse_of: :child_categories
has_and_belongs_to_many :items
field :name, type: String
class Item
field :name, type: String
has_and_belongs_to_many :categories
我想要的类别树是这样的:
|- Clothing
|-- TShirt
|--- (Item class) A cool T-Shirt
|- Books
|-- Programming
|--- Databases
|----(Item class) Learning MongoDB
|----(Item class) Learning PostgreSQL
|--- Languages
|----(Item class) Intro to Ruby Programming
|-- Cooking
|--- (Item class) How to bake a cake
如果所有Category
个叶子节点都拥有Item
(而不是让每个Category
持有Item
),我将如何构建Mongoid查询以便为我提供所有内容属于编程或图书?
答案 0 :(得分:0)
我选择使用mongoid-tree gem。