用户可以查看其他用户解决方案并获得评论

时间:2013-01-28 12:34:44

标签: ruby-on-rails polymorphic-associations

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

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

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

Review.rb

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

User.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

1 个答案:

答案 0 :(得分:1)

显而易见的问题是,您的User模型中有两个具有相同名称的关联。一个简单的解决方法是重命名其中一个。由于您的Post已经拥有与reviews多态关联类似的reviews关联,因此您可以将用户书面评论重命名为:

has_many :reviews_by_me, class_name: 'Review'

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