如何使用树层次结构类别来处理rails3 habtm?

问题描述

| 我已经看过现有的问题,并且由于变化,我无法找到有关如何使用类别树层次结构处理habtm的好的解决方案。 “可标记行为”表示代码知道上下文,这是我所不希望的。在这个网站和其他网站上已经多次询问了这个问题,但实际上,还没有一个完整的答案。 基本上,我有一组具有单级层次结构的类别: 根类别1 子类别3 子类别4 根类别2 子类别5 子类别6 表单部分比较简单。我列出了所有根类别,然后为每个类别找到子类别。这仅适用于单级层次结构,不适用于我的需求,因为我宁愿拥有无限级(即对嵌套级无所谓的解决方案),但如果添加太多的复杂性就没有必要。 我主要不确定该如何进行。在这一点上,我可以获得相关类别的简单哈希,但是没有层次结构。我见过的嵌套类别解决方案在habtm上下文中不起作用,而是在整个树本身中起作用。     

解决方法

好的,它并不是那么明显,但是祖先(又名has_ancestry:https://github.com/stefankroes/ancestry)可以很好地解决这一问题。 我的模型中的产品具有与HABTM关系中的类别。类别是具有has_ancestry的层次结构。 一旦获得产品的类别,只需在集合中调用“安排”即可:   @ product.categories.arrange.each | root_cats,sub_cats | 出色地工作。 简而言之,anwer是祖先的宝藏:https://github.com/stefankroes/ancestry。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...