Parent 1
|
|-Child 1
|- - Child 1_GrandChild1
|
|-Child 2
|
Parent 2
|
|-Child 1
|- - Child 1_GrandChild1
|- - Child 1_GrandChild2
|
|-Child 2
|
|-Child 3
|- - Child 3_GrandChild1
|
Parent 3
字符串
我想按字母顺序对这个嵌套的集合结构进行排序,首先应该对父类进行排序,然后是子类,然后是孙类。
这已经在rails中的nested set gem中实现了,但是它没有按排序顺序给予孙代,只有父代是按排序顺序的。我还尝试在模型部分使用order_column属性,但得到了相同的结果--父代被排序,而孙代没有。我也检查了提到here和here的问题,但没有帮助。我们如何处理这个问题?
编辑:所以它是一个对象数组。
输入:
A
- C
- B
Output:
A
- B
- C
型
问题是,如果我有孙子孙女,现有的实现不会对其进行排序。
2条答案
按热度按时间u0njafvf1#
我真的不知道下面是不是你正在寻找的,但如果不是,也许你可以调整它以适应你的需要。
字符串
型
注意
型
因此,
sort
首先对每个两元素数组的第一个元素进行排序,然后对第二个元素进行排序以打破平局:型
最后,
b.map(&:last)
将每个两元素数组Map到数组的最后一个元素。vxbzzdmp2#
我试着回答了这个问题here。我认为解决方案通过将以下内容添加到acts_as_nested_set的模型中来实现您想要的功能:
字符串
因此,调用
category.sorted_heir_list
给出了一个按名称排序的平面对象数组,同时保留了层次结构,并且只会导致一次DB命中。