如何使用行为在rails上构建标签层次结构
我有一个rails应用程序,其中包括使用gem acts-as-taggable-on标记博客文章。 我的想法是使用中等链接方法来扩展此gem的标记机制,我可以选择创建一些用户作为标记所有者,并且可以选择将一个标记链接到另一个作为父/子的标记。
目前该系统具有独立标签,如Education
, Child Education
和Distance Education
Education
的标签所有者可以选择将Child Education
和Distance Education
选为第一级儿童并将它们连接在一起。 在分类学家(A标签管理员)批准之前,这种关系是不可见的。
同样,最终用户还可以建议Distance Education
标签作为Education
的子项,并且该请求将对标签管理员可见。 根据他的批准,这种关系将会建立起来。
这些是我有关上述要求的几个问题: -
是否建议扩展宝石,或者我应该使用从头开始编写的独立标签模型来支持这个分级系统?
如果我继续使用由gem提供的模式,应该使用什么样的模型来设计这样的要求。 具体来说,我应该使用带有标签ID和标签名称的parent_id列的单个表吗? 或者我应该在一个包含多对多关联(tag_id,parent_tag_id(作为外键))的单独表格中维护他们的关系。
我对数据结构也很陌生,因此我需要一些关于算法选择的初始输入来有效地在标签族之间进行遍历。 使用链表是我的选择,但考虑到Rails的惯例而不是配置,我真的不确定如何继续这个。
我记得在4年前用ActsAsTree做了一些similir。
还有一个如何在这里手动完成的例子。
这两个选项都需要标签表上的parent_id列,而且非常简单。 只需在模型文件夹中创建一个tag.rb并扩展Tag类。
PS。 它已经很长时间了,但我记得不得不检查没有循环,只要记住它
链接地址: http://www.djcxy.com/p/35939.html