我想实现一个树形菜单(树形菜单的简单示例 http://www.treemenu.net/treemenu/3fr_largetree.html)在我正在开发的 Rails 应用程序中。我不确定是否使用acts_as_tree或Ancestry。看起来使用acts_as_tree实现一个简单的树形菜单会更容易,但是Ancestry更受欢迎并且定期维护。有人对此有什么想法吗?
使用祖传。它具有更强大的查询功能,因为它实现了物化路径模式 http://en.wikipedia.org/wiki/Materialized_path,与实现的acts_as_tree相反邻接表 http://en.wikipedia.org/wiki/Adjacency_list.
还有其他选项,例如嵌套集,但物化路径通常是最全面的。
https://communities.bmc.com/communities/docs/DOC-9902 https://communities.bmc.com/communities/docs/DOC-9902
如果您需要在数据库级别进行预排序(例如分页树网格、根据树的深度进行迭代和缩进/缩进以进行显示的预加载菜单),您需要使用递归查询或可排序编码像嵌套集合或嵌套间隔。 (也就是说,如果在内存中排序不是一种选择,而且几乎从来都不是。)
https://github.com/collectiveidea/awesome_nested_set https://github.com/collectiveidea/awesome_nested_set
https://github.com/clyfe/acts_as_nested_interval https://github.com/clyfe/acts_as_nested_interval
每个都有起伏。选择适合您的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)