繁体   English   中英

如何在Ruby on Rails中获取对象的所有后代

[英]How to get all the descendants of an object in Ruby on Rails

我有与以下相关的模型:

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方法,但它只会在单个类上创建一个附加索引,使您可以在所述类中获得后代。(对于注释和回复非常有用,但没有用)对于我的问题)我的代码并不是真正理解该问题的必要条件,但是这里是针对那些感兴趣的人的: https//gist.github.com/bjlinville1/8425bfe88bc7060209e8

我相信您误解了祖传宝石。 您似乎希望Region成为Country的子级。 那正确吗?

祖先对于树状结构很有用(想想文件夹->子文件夹->子子文件夹->等)

在“国家/地区”模型中应用has_ancestry可以使您在国家/地区中创建国家/地区。 但是我不相信这就是您想要的。

无论如何,您可以通过在控制器内创建/更新国家/地区的“ parent_id”属性来设置这些关系。 只需将其设置为父国家/地区的ID。 如果您想要区域的树形结构,则对于区域也是如此。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM