actions_as_tree vs祖先gem用于树状菜单

我想在我正在处理的Rails应用程序中实现树菜单(树菜单的简单示例 )。 我不确定是否使用acts_as_tree或Ancestry。 似乎使用acts_as_tree实现一个简单的树菜单会更容易,但是,Ancestry更受欢迎并且定期维护。 有没有人对此有任何想法?

使用祖先。 它具有更强大的查询function,因为它实现了物化路径模式 ,而不是实现邻接列表的 acts_as_tree。
还有其他选项,如嵌套集,但物化路径通常是最全面的。

https://communities.bmc.com/communities/docs/DOC-9902

如果需要在数据库级别预先排序(例如,分页树形网格,根据树中的深度进行迭代和缩进/定义以进行显示),您需要使用递归查询或可排序编码像嵌套集或嵌套间隔。 (也就是说,如果在内存中排序不是一个选项,它几乎不会。)

https://github.com/collectiveidea/awesome_nested_set
https://github.com/clyfe/acts_as_nested_interval

每个人都有起伏。 选择适合自己的方式。