我在我的Review
模型上使用User
和Post
的多态关联。
但是,每个评论都有一个所有者也是有道理的。
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
答案 0 :(得分:1)
显而易见的问题是,您的User
模型中有两个具有相同名称的关联。一个简单的解决方法是重命名其中一个。由于您的Post
已经拥有与reviews
多态关联类似的reviews
关联,因此您可以将用户书面评论重命名为:
has_many :reviews_by_me, class_name: 'Review'
通过指定类名,Rails可以推断出其余信息,并为您提供Review
匹配user_id
匹配的正确User
个对象。