-2

我在我的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
4

1 回答 1

1

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

has_many :reviews_by_me, class_name: 'Review'

通过指定类名,Rails 可以推断出其余的信息,并Reviewuser_id您的User.

于 2013-01-28T15:18:43.057 回答