3

我有一个 Rails 应用程序,其中包括使用 gem 作为可标记的博客文章的标记。我的想法是使用中等链接方法扩展此 gem 的标记机制,我可以选择创建一些用户作为标签所有者,他们可以选择将一个标签链接到另一个标签作为父/子。

目前该系统有独立的标签,如Education, Child EducationDistance Education

的标签所有者Education可以选择选择Child EducationDistance Education 作为第一级孩子并将它们链接在一起。在分类学家(标签管理员)批准之前,这种关系是不可见的。

同样,最终用户也可以建议Distance Education标签成为其子标签,Education并且该请求将对标签管理员可见。在他的同意下,双方的关系将建立。

这些是我与上述要求有关的几个问题:-

  1. 是否建议扩展 gem 或者我应该使用从头开始编写的独立标记模型来支持这个分层系统?

  2. 如果我继续使用 gem 提供的模式,应该使用什么样的模型来设计这样的需求。具体来说,我应该使用带有标签 id 和标签名称的 parent_id 列的单个表吗?或者我应该在具有多对多关联(tag_id、parent_tag_id(作为外键))的单独表中维护它们的关系。

  3. 我也是数据结构的新手,所以我需要一些关于算法选择的初始输入,以便在标签系列之间有效地遍历。使用链表是我的选择之一,但是考虑到 Rails 的约定优于配置的口头禅,我真的不确定如何继续进行。

4

1 回答 1

3

我记得 4 年前用ActsAsTree做过类似的事情。

这里还有一个如何手动操作的示例。

这两个选项都需要标签表上的 parent_id 列,并且非常简单。只需在您的模型文件夹中创建一个 tag.rb 并扩展 Tag 类。

附言。已经很久了,但我记得必须检查是否有循环,请记住

于 2013-04-05T10:17:55.467 回答