rails祖先通过根获得最后一个孩子

问题描述 投票:0回答:1

我在Folder类中有此记录

Folder 1 = parent id: root
  sub folder 1 = parent id: Folder 1
    secret file1 = parent id: Folder 1/sub folder 1
      my folder1 = parent id: Folder 1/ sub folder 1/ secret file1

Folder 2
 sub folder 2 = parent id: Folder 2
  secret file2 = parent id: Folder 2/sub folder 2
   my folder2 = parent id: Folder 2/ sub folder 2/ secret file2

现在我的html中有这个

- folder.indirects.each do |sub|
   div.col
    div.form-group
     = sub.name

我马上就这样

秘密文件1

我的文件夹1

秘密文件2

我的文件夹2

但是我的目标是获得“我的文件夹1”和“我的文件夹2”

ruby-on-rails ruby ruby-on-rails-5 ancestry
1个回答
0
投票

所以您基本上想获得所有叶节点,对吗?

您可以通过遍历所有后代并拒绝带有子节点的节点来实现。它可能不是性能最高的解决方案,但它会起作用。

 - folder.descendants.reject(&:has_children?).each do |sub|
   div.col
    div.form-group
     = sub.name
© www.soinside.com 2019 - 2024. All rights reserved.