【发布时间】:2015-11-20 20:42:47
【问题描述】:
我有以下相关模型:
GrandParent
has_many :kids
has_many :grand_children, through: :kids
Kid
belongs_to :grand_parent
has_many :grand_kids
GrandKid
belongs_to :kid
我只想在一个对象上调用 .descendants,并获取属于其“世系”的所有对象。
我认为使用祖先 gem 会给我想要的 .descendants 方法,但它只会在单个类上创建一个额外的索引,允许您在该类中获取后代。(非常适合 cmets 和回复,但对我的问题没有用)我的代码并不是理解问题所必需的,但这里是为那些感兴趣的人准备的:https://gist.github.com/bjlinville1/8425bfe88bc7060209e8
【问题讨论】:
-
我只建议将您的帖子缩短到理解问题所需的最少代码量。这是一个很好的问题,但过多的细节让 Q 失去了意义。您可能希望将您的 MVC 代码包含在 gisthub gist 中。
-
感谢 Hunter,为了清楚起见,我编辑了问题,并为它做了一个要点,并包含了简化的 MVC。
-
Ben,如果您使用祖先,您只需要创建一个模型“Person”,树中的关系将确定实例是祖父母、孩子、孙子等。
标签: ruby-on-rails ruby tree children ancestry