同一型号上的多对多关系(mongodb,rails)

时间:2012-08-18 07:50:39

标签: ruby-on-rails mongoid

在我的mongodb / rails项目中,我有类别和子类别。两者都使用相同型号的类别每个子类别可以属于多个类别,类别也可以有多个子类别。

现在我不知道如何将这种关系编码到模型中,因为我在两侧都有相同的模型类别。另外,我欢迎一些示例如何在rails中编写Category的表单视图,以便能够将子类别添加到类别中。

我使用mongoid 2.4,rails 3.2.7。

1 个答案:

答案 0 :(得分:0)

您想在此处建立has_and_belongs_to_many关系:

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

用例:

film_category1 = Category.create(name: "French")
film_category2 = Category.create(name: "Spanish")
film_category3 = Category.create(name: "Romantic")
film_category1.child_categories << film_category3
film_category2.child_categories << film_category3

film_category3.parent_categories # [film_category1, film_category2]
film_category2.child_categories # [film_category3]