3

这里的查询有点复杂。三个相关表:用户、帖子和评论。用户有_很多帖子和评论,帖子属于_用户和有_很多评论,评论属于_一个用户和一个帖子。也就是说,我正在 Rails 中尝试在我的控制器中查找用户在其所有帖子中收到的所有评论。我试过这个:

@comments = Comment.where(:post_id.user => @user.id)

但这并没有真正奏效。这可能是一个简单的解决方案,帮助?

4

2 回答 2

7

您必须为此加入帖子表:

@comments = Comment.joins(:post).where(:posts => { :user_id => @user.id })
于 2012-08-04T04:37:33.230 回答
1

您还可以执行以下操作:

@user = User.find(@user.id, :include => :comments)

<% @user.comments.each do |comment| %>
   <%= comment.id %> <br/>
   <%= comment.text %>
<% end %>
于 2013-03-25T08:21:31.580 回答