繁体   English   中英

rails 祖先通过根获取所有最后一个孩子

[英]rails ancestry get the all last children by the root

我在文件夹类中有这个记录

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”

所以你基本上想要获取所有叶节点,对吗?

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

 - folder.descendants.reject(&:has_children?).each do |sub|
   div.col
    div.form-group
     = sub.name

顺便说一句,对于级别= 2 的树,使用indirects方法是错误的,因为在这种情况下,您将拒绝根的直接子级,在这种情况下它们也是叶子。

- folder.indirects.each do |sub|
  - if sub.children.blank?
    div.col
      div.form-group
       = sub.name

我使用 if so 我可以删除另一个文件夹

暂无
暂无

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

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