树菜单的acts_as_tree 与ancestry gem [关闭]

2024-01-12

我想实现一个树形菜单(树形菜单的简单示例 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(使用前将#替换为@)

树菜单的acts_as_tree 与ancestry gem [关闭] 的相关文章

随机推荐

  • 更改反应本机中反应导航选项卡的底栏容器颜色

    我正在尝试将边框半径添加到底部栏 但是这样 我想将容器颜色从默认更改为紫色 我怎样才能做到这一点 到目前为止我做了什么 我想要的是 Code tabBarOptions activeTintColor colors primary inac
  • Google Maps API v3 中的remove_at 事件何时触发?

    我正在研究 google map api v3 想要添加编辑折线的功能 根据谷歌文档 当折线处于编辑模式时会触发 3 个事件 插入位置 set at 删除 at 我知道前两个事件何时被触发 并且也能够获得编辑后的坐标 我也想删除一个节点但不
  • 为什么我应该在 Clojure 中使用“apply”?

    这是 Rich Hickey 在一篇博客文章中所说的 但我不明白使用 apply 的动机 请帮忙 Clojure 和 CL 之间的一个很大区别是 Clojure 是 Lisp 1 因此不需要 funcall 并且 apply 仅用于将函数应
  • 安卓权限错误

    我创建了一个启用蓝牙并发现其他设备的应用程序 在清单中我有以下内容
  • 如何在java/Android中的选项卡之间使用intent?

    我需要知道如何处理选项卡之间的意图 例如 我有一个带有两个选项卡的选项卡活动 首先内容是文本视图 另一种是地图视图 当我单击该文本视图时 它会重定向到 tab2 它可以通过 setCurrentTab 1 或 setCurrentTabBy
  • SKAction playSoundFileNamed 在 500 mp3 时失败

    在我的应用程序中 我需要使用很多不同的短mp3 大约500个项目一一 所以我用SKAction playSoundFileNamed 在大约 200 声声音后 它崩溃并显示 无法加载资源 无法加载资源 s234 mp3 内存升至70mb 如
  • 在Three.JS中通过鼠标点击选择Collada对象

    我需要通过鼠标单击在 Three JS 中选择 Collada 对象 我知道我可以根据对象的 id 选择对象 并且我看到了一些用户可以与几何定义的对象交互的示例 here http mrdoob github com three js ex
  • 如何在 Flutter 中左对齐 OutlineButton 图标

    如何左对齐OutlineButton颤振中的图标 Icon可以按如下方式添加 但图标和文本都在按钮中居中对齐 有没有办法将图标向左对齐 文本向中心对齐 return new OutlineButton icon onPressed onPr
  • Java“常量字符串太长”编译错误。仅在使用 Ant 时发生,在使用 Eclipse 时不会发生

    我在一个类中有一些非常长的字符串用于初始化用户信息 当我在 Eclipse 中编译时 没有收到任何错误或警告 并且生成的 jar 运行良好 最近 我决定创建一个 ant 构建文件来使用 每当我用 ant 编译同一个类时 我都会收到 cons
  • jQuery 验证插件 - 如何不显示“此字段为必填”标签

    如何关闭所有输入文本框的 此字段为必填 的显示 我宁愿不必做这样的事情 myForm validate messages myField1 required myField2 required myField3 required 您只需将默
  • 如何指定从中获取 EJB 的服务器?

    在 java EE 中 从远程服务器获取 EJB 的方法是在 JNDI 中查找 该规范定义了给定 bean 类型的 JNDI 名称 然而 这似乎仅适用于您想从本地计算机上获取信息的情况 我想像大多数用户一样从远程服务器上获取 bean 如何
  • 如何获得最爱的星星

    我想添加一个最喜欢的星星 就像 Android 上的联系人列表中的星星一样 我们有什么办法可以获得那颗星星 还是我必须自己写 除了选项菜单图标之外 我似乎找不到任何来自 android 的标准 GUI 元素 还有其他我没找到的吗 看看乔治
  • Pyserial:无法配置端口:(5,'输入/输出错误)

    在过去的两天里 我一直在尝试运行以下两行Python代码 但没有取得多大成功 import serial ser serial Serial 0 每次运行它时 我都会收到以下错误 Traceback most recent call las
  • oidc-client-js 未从 Identity Server 4 正确获取声明

    我有一个 Identity Server 4 的本地实例 我正在尝试遵循本指南 http docs identityserver io en release quickstarts 7 javascript client html创建一个
  • Swift Double 无法转换为 CGFloat

    我试图画一个简单的圆圈 当我到达以下行时 我收到错误 Double is Not Convertable to CGFloat under thestartAngle 0 0 path addArcWithCenter center rad
  • 使用 JDBC 从多个表中进行 SELECT 时如何识别列?

    我在 id 列上加入了两个表 它们看起来像 users id name posts id user id message 现在我想选择所有帖子并包含用户名 其中 SELECT FROM posts users WHERE user id u
  • Windows 容器 2016 以域用户身份运行 powershell

    我希望能够以域用户身份运行 Windows 容器 示例 不知道如何以不同用户身份运行 docker run it microsoft nanoserver powershell 或者能够以域用户身份在容器中运行 powershell 脚本
  • 如何对像素数据进行位条纹?

    我有 3 个缓冲区 其中包含在 32 位处理器上运行的 R G B 位数据 我需要按以下方式组合三个字节 R 0 0b r1r2r3r4r5r6r7r8 G 0 0b g1g2g3g4g5g6g7g8 B 0 0b b1b2b3b4b5b6
  • Google MLKit 能够识别同一张脸吗?

    我正在考虑在我的 Android 应用程序中实现 MLKit 人脸识别库 我唯一不明白的是 如果可能的话 我如何比较两张照片并检测它们是否是同一个人 我已阅读这些指南 https firebase google com docs ml ki
  • 树菜单的acts_as_tree 与ancestry gem [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我想实现一个树形菜单 树形菜单的简单示例 http www treemenu net treemenu 3fr largetree html 在