【发布时间】:2014-08-21 05:08:30
【问题描述】:
我无法在 Rails 中为特定类型的列表建模。
基本上,我想建模一个列表,其成员包含其他列表或单个项目。
假设我有一张汽车零件表
Table Part
name
cost
color
假设某些部件列表非常常见,所以我想定义一些部件列表并重用这些列表。例如:
Table PartList
name
Table PartListItem
part_id
partList_id
position
现在,如果我想显示特定汽车所需的物品,我想要一个列表,其成员可能是特定汽车的特定物品,并且成员是可以在许多汽车中找到的常见捆绑物品列表.
可能看起来像这样:
普通汽车的零件清单:
- 发动机零件清单
- 身体零件清单
- 前保险杠
- 后保险杠
- 尾管
- 安全合规零件清单
高档汽车零件清单:
- 发动机零件清单
- 身体零件清单
- 闪亮的前保险杠
- 闪亮的后保险杠
- Wizbang 尾管
- 安全合规零件清单
如果我要修改“引擎”的零件列表,查看任一汽车零件列表都会反映更改。无论列表的层次结构如何,列表都可能包含更多列表或单个项目。
一旦所有列表都“展开”,它们的内容都是“部分”
我可能错了,但这不完全是递归,不完全是树,也不完全是嵌套集合。感觉有点像菜单系统,但“菜单”的每个成员可能有很多属性。
这类问题是否有 DRY 解决方案?我很乐意接受一些,呃...缺乏干燥度,如果它有助于我能理解的解决方案。
【问题讨论】:
-
也许我应该考虑使用这样的东西:mceachen.github.io/closure_tree
标签: sql ruby-on-rails model nested hierarchy