如何在Mongoid中检索此类别方案下列出的项目?

时间:2014-05-18 05:37:41

标签: ruby mongoid

我尝试创建一个类别/子类别树,然后搜索某个类别/子类别下的项目。我对如何做到这一点感到困惑。我有以下代码改编自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查询以便为我提供所有内容属于编程图书

类别的项目

1 个答案:

答案 0 :(得分:0)

我选择使用mongoid-tree gem。