我正在使用带有名为 MenuHeader 的模型的祖先 gem
class MenuHeader < ActiveRecord::Base
has_ancestry
例如这个数据模型
id name ancestry position
1 MenuHeader#1 NULL 1
2 MenuHeader#2 1 1
3 MenuHeader#3 1/2 2
4 MenuHeader#4 1/2 1
有了这个表示:
1. MenuHeader#1
2. MenuHeader#2
4. MenuHeader#4 position 1
3. MenuHeader#3 poition 2
查看https://github.com/stefankroes/ancestry上的 README ;目前尚不清楚我将如何实现这一目标或这是否可能?我试着在上面放一个范围,但似乎没有用。好像
<% menu_header.children.is_not_deleted.each do |menu_header| %>
<%= render 'menus/ancestry/menu_header_form', menu_header: menu_header %>
<% end %>
想成为:
<% menu_header.sorted_children.is_not_deleted.each do |menu_header| %>
<%= render 'menus/ancestry/menu_header_form', menu_header: menu_header %>
<% end %>
但不知道该怎么做。关于如何实现这一目标的任何想法?
编辑#1 我见过这个:
Note that since materialised path trees don’t support ordering within a rank, the order of siblings depends on their order in the original array.
在排序的讨论中,但似乎我应该能够将 lambda 传递给应该如何排序。