gpt4 book ai didi

ruby-on-rails - 在 Ruby 中对嵌套/邻接模型进行排序的算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:09:53 26 4
gpt4 key购买 nike

我一直在努力寻找一种好的方法来完成这项工作,无论是在客户端使用 Javascript 还是在服务器端的最后一刻。这是一个 Rails 应用程序,但这是一个非常笼统的问题。我有一个分层模型,当前存储在嵌套集模型中。然后模型有:

parent_id, lft, and rgt

我想在一个选择语句中从数据库中提取所有模型,因此给我一个简单的模型列表,然后将它们即时排序为树状层次结构。我还没有找到一种不需要递归的干净方法。我确定有一个很好的算法可以解决这个问题。谢谢。

最佳答案

我不知道没有递归的算法。我想无论如何我都会分享我的站点地图 View 助手:

def tree_from_set(set, &node_text)
buf = '<ul>'
siblings = set.select{|n| n.parent_id == set[0].parent_id}

siblings.each do |node|
children = set.select{|n| n.lft > node.lft and n.rgt < node.rgt }
buf << '<li>'
if children.blank?
buf << yield(node)
else
buf << yield(node)
buf << tree_from_set(children, &node_text)
end
buf << '</li>'
end
buf << '</ul>'
end

关于ruby-on-rails - 在 Ruby 中对嵌套/邻接模型进行排序的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2230153/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com