Rails/Mysql/SQLite - 构建 2 级或 3 级菜单的最佳主意是什么



我认为最好的方法,如何创建一个2- 3级的菜单。我的第一个想法是将所有内容存储到一个数据库表中,其结构如下:

- id
- item
- level

如果我创建一级菜单项,那么级别将为0。如果我将创建第二个层次的菜单项(如。Contact - phone),所以phone是第二个菜单项,level的值将是Contact的ID。但是现在-我不知道,如何从数据库中打印它-在第一个循环中,我将打印菜单项的第一级(与水平=0),然后我应该打印第二个菜单项(与水平=ID_of_first_menu_item) -存在任何优雅的方式,如何同时打印第一和第二级项目(我将在Rails中构建它)?

第二种方法-每一级菜单项存储到单独的表-但我的意思是这不是一个好主意…

谢谢你的帮助!

看一下https://github.com/collectiveidea/awesome_nested_set,它基本上是一个树。非常适合嵌套导航