Rails中的递归模型

时间:2009-08-23 22:53:28

标签: ruby-on-rails model

我在努力让这个工作变得困难。我有一个项目模型,每个项目可以有其他项目或没有。

这是可能的,还是我需要做一些魔术?

3 个答案:

答案 0 :(得分:6)

您可以使用acts as tree plugin或自行构建:

belongs_to                :parent,
                          :foreign_key => "parent_id",
                          :class_name => "Item"

has_many                  :children,
                          :foreign_key => 'parent_id',
                          :class_name => 'Item',
                          :order => 'created_at ASC',
                          :dependent => :delete_all

答案 1 :(得分:0)

答案 2 :(得分:0)

可能有一些AR内置或libs插件/宝石来处理大多数非奇怪的用例,但是:如果你在谈论一个

,那就不清楚了
  • 加入表/ Actve记录关联,(异构关系,2或3个表)
  • 嵌套set / acts_as_tree,(一个表中相似对象的树)或
  • 单表继承,一个表中的某种异构对象

或者,最混乱的事情,a - 实体 - 属性 - 值表(EAV)设计

http://en.wikipedia.org/wiki/Entity-Attribute-Value_model