我目前正在使用祖先gem来制作我的“帖子”的层次结构列表,但是我需要让孩子有多个父母的选项,并且有了祖先我不能这样做。你们有什么解决方案吗?使祖先适应其他宝石或使用其他宝石代替。感谢
答案 0 :(得分:0)
您想要达到的目标基本上是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)