我想在我正在开发的 Rails 应用程序中实现树形菜单(树形菜单的简单示例)。我不确定是使用acts_as_tree 还是Ancestry。似乎使用acts_as_tree 实现一个简单的树形菜单会更容易,但是,Ancestry 更受欢迎并且定期维护。有人对此有任何想法吗?
问问题
5410 次
1 回答
11
使用血统。它具有更强大的查询能力,因为它实现了物化路径模式,而不是实现邻接列表的acts_as_tree 。
还有其他选项,例如嵌套集,但物化路径通常是最全面的。
https://communities.bmc.com/communities/docs/DOC-9902
如果您需要在 DB 级别按预排序(例如分页树形网格、您根据树中的深度进行迭代和缩进/缩进以显示的预加载菜单),您需要使用递归查询或可排序编码像嵌套集或嵌套间隔。(也就是说,如果在内存中排序不是一种选择,而且几乎从来没有。)
https://github.com/collectiveidea/awesome_nested_set
https://github.com/clyfe/acts_as_nested_interval
每个人都有起起落落。选择适合您的。
于 2012-01-12T14:15:24.987 回答