如何通过rails

时间:2016-02-20 06:46:27

标签: ruby-on-rails ruby

我有一个有很多用户的rails项目 每个用户 has_many 照片 每张照片 has_many 评论

我想在@usercomments中获得一个user_controller,其中包含与该用户相关的所有评论的列表。
我试过了:

@usercomments = @user.photo.each.comments.where( accepted: false )

没有用。 我怎样才能做到这一点? 我找不到任何相关的答案,也许我没有正确写出来。

3 个答案:

答案 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

我希望这对你有所帮助。