ruby on rails:具有多个父项的层次结构模型

时间:2016-06-23 11:00:17

标签: ruby-on-rails ancestry

我目前正在使用祖先gem来制作我的“帖子”的层次结构列表,但是我需要让孩子有多个父母的选项,并且有了祖先我不能这样做。你们有什么解决方案吗?使祖先适应其他宝石或使用其他宝石代替。感谢

1 个答案:

答案 0 :(得分:0)

使用HABATM关联

您想要达到的目标基本上是has_and_belongs_to_many。你可以在自己身上建立一种关系,这应该可以解决问题。如果您需要有关如何使用HABTM关联的帮助,here is a SO answer显示如何执行此操作。

class Post < ActiveRecord::Base
  has_and_belongs_to_many :children, 
              class_name: "Post", 
              join_table: :children, 
              foreign_key: :post_id, 
              association_foreign_key: :child_post_id
end

或者,使用宝石

您可以使用acts-as-taggable-on gem标记您的帖子。如果你创建一个包含标签的模型或枚举会更好,这样你就不会在标记时输入错误。

您可以像这样查询帖子:

Post.tagged_with(["ruby", "rails"], :any => true)
相关问题