Ruby on rails 如何定义';有一种风格';与多个不同模型之一的关联?
如果模型之间的关联可以与两个不同模型中的一个实例关联,是否有任何方法可以定义模型之间的has_one样式关联?特别是,我有以下型号: 职位 评论 用户发表帖子,其他用户可以对此发表评论。但用户也可以对其他评论发表评论(类似于Facebook的帖子)。我试图在我的项目中反映这种关系,我说一条评论可以有一个目标(这个目标可以是一篇文章,也可以是另一条评论) 我认为最好使用has_-one关联,但据我所知,has_-one关联只能用于将一个模型与另一个模型关联Ruby on rails 如何定义';有一种风格';与多个不同模型之一的关联?,ruby-on-rails,associations,models,has-one,Ruby On Rails,Associations,Models,Has One,如果模型之间的关联可以与两个不同模型中的一个实例关联,是否有任何方法可以定义模型之间的has_one样式关联?特别是,我有以下型号: 职位 评论 用户发表帖子,其他用户可以对此发表评论。但用户也可以对其他评论发表评论(类似于Facebook的帖子)。我试图在我的项目中反映这种关系,我说一条评论可以有一个目标(这个目标可以是一篇文章,也可以是另一条评论) 我认为最好使用has_-one关联,但据我所知,has_-one关联只能用于将一个模型与另一个模型关联 如何在这些模型之间实现多个(或其他类似格
如何在这些模型之间实现多个(或其他类似格式的)关系?您想要一个关系<代码>属于_to位于注释模型正在执行的引用其他内容的一侧(具有
xx\u id
列);考虑到帖子将<代码> HasyButh<代码> >,与<>代码的反义词HasySuth<<代码>是<代码>归属到。多态性=可以引用任何模型。您很幸运,因为Rails很久以前就处理过这个问题。这是一个典型的例子。您需要这样定义您的模型:
class Post
has_many :comments, as: :commentable
end
class Comment
# fields :commentable_type, type: String
# fields :commentable_id, type: Integer
belongs_to :user
belongs_to :commentable, polymorphic: true
has_many :comments, as: :commentable
end
您可以在这两个方面调用注释
,如下所示:
post.comments
# And
post.comments.first.comments
谢谢任何一个偶然发现这个问题的人,点击上面答案中的链接,它与这个回答结合在一起,彻底澄清了情况。