Ruby on Rails - 用户可以查看并接受其他用户解决方案的评论



我在我的Review模型上使用多态关联来UserPost。但是,每次评论都有一个所有者也是有意义的。

通过所有者,我的意思是关联的user模型。但这带来了问题,因为用户可以查看并有其他用户的评论

最好的方法是什么。欢迎任何解决方案的想法。

评论.rb

belongs_to :reviewable, polymorphic: true
belongs_to :user # owner of the reviews

用户.rb

  # reviews from others
  has_many :reviews, as: :reviewable, dependent: :destroy 
  has_many :reviews  # user written reviews

Post.rb

  has_many :reviews, as: :reviewable, dependent: :destroy

明显的问题是,User模型中有两个同名的关联。一个简单的解决方法是重命名其中一个。由于您的Post已经具有与类似reviews多态关联匹配的reviews关联,因此您可以将用户撰写的评论重命名为如下所示:

has_many :reviews_by_me, class_name: 'Review'

通过指定类名,Rails 可以推断出其余信息,并为您提供user_idUser匹配的正确Review对象。

相关内容

最新更新