所以我知道对于类别的树结构,你可以使用类似的东西:
class Category < ActiveRecord::Base
has_many :children, :class_name => "Category"
belongs_to :parent, :class_name => "Category"
end
类别db
但是,你如何才能使一个类别有多个父母以及多个孩子呢?我想我需要添加一个child_id(整数),但模型看起来是什么样的?
答案 0 :(得分:0)
您可以拥有任意数量的父母和孩子。您的child_id不属于表,只有parent_id。
让我举个不同的例子。
一棵树有很多叶子,还有很多虫子。树属于森林,属于人。
所以模型看起来像这样:
class Tree < ActiveRecord::Base
has_many :leaves
has_many :bugs
belongs_to :forest
belongs_to :person
end
Tree
表格将具有forest_id
和person_id
属性。 Bug
表格为tree_id
,Leaf
表格分别为tree_id
。如果您有更多问题,请与我们联系。
编辑:
为了对作为其父级的模型进行循环引用,您应该能够简单地执行此操作。
class Category < ActiveRecord::Base
has_many :categories
end
这里会发生Category
表应该得到一个category_id
字段。只要在表数据中正确设置了category_id
引用,您就可以在模型中拥有任意数量的父项和子项。所以说你有:
name | id | category_id
a | 1 | 1
b | 2 | 1
c | 3 | 1
使用ActiveRecord关联,您应该能够浏览此模型。我认为诀窍是将Category: a
设置为自己的父,因为它是根。