2

我有一个名为类别的表,其中表结构和数据是

id | parent_id | name
------------------------
1  | 0         | Computers    // parent
2  | 0         | TV           // parent
4  | 1         | Motherboards // child - to - id(1)
5  | 4         | Mercury
6  | 5         | Mecrury XXX
7  | 6         | Mecrury YYY

(其中parent_id是另一行的id )

展示如何使用Rails3 Activerecord 查询接口获取父/子结果。(或任何其他解决方案)。

如果我搜索计算机,我如何获得该父类别下的所有子项 -> 超级子项。

Example Result will - Computers -> Motherboards -> Mercury XXX -> Mercury YYY

谢谢你

4

1 回答 1

1

您应该看看令人敬畏的嵌套设置gem。

它允许您调用类似这样的方法来获取所有后代节点:

Node.root.self_and_descendants

祖先似乎也不错,尽管我自己没有使用过。

这两个 gem 都需要迁移您的数据,但这样做会更好,因为仅使用 parent_id 来导航子节点并不是最有效的。

于 2012-07-20T05:28:14.403 回答