我有一个有很多用户的rails项目 每个用户 has_many 照片 每张照片 has_many 评论。
我想在@usercomments
中获得一个user_controller
,其中包含与该用户相关的所有评论的列表。
我试过了:
@usercomments = @user.photo.each.comments.where( accepted: false )
没有用。 我怎样才能做到这一点? 我找不到任何相关的答案,也许我没有正确写出来。
答案 0 :(得分:2)
我建议你为User模型添加一个has_many关系,比如
has_many :associated_comments, class_name: Comment, through: Photo,
foreign_key: ****, primary_key: ****
如果您提供用户/照片/评论表字段
,将会更加清晰答案 1 :(得分:1)
我的模特遇到了类似的问题。这不仅是模型中设置的关系(has_many / belongs_to),而是因为我在模型中没有“belongs_to”关系的外键。你也应该看一下。
答案 2 :(得分:0)
在我看来,您可以在用户模型中添加它。
<强> user.rb 强>
has_many :photos
has_many :comments
has_many :photo_comments, through: :photos, class_name: "Comment"
<强> photo.rb 强>
belongs_to :user
has_many :comments
<强> comment.rb 强>
belongs_to :user
belongs_to :post
您可以通过以下方式获取所有评论:
@user.comments
您可以通过以下方式获得用户发表评论:
@user.photo_comments
我希望这对你有所帮助。