rails找到帖子的user_id = user的所有评论

时间:2012-08-04 04:26:10

标签: ruby-on-rails ruby activerecord

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

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

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

2 个答案:

答案 0 :(得分:7)

你必须join帖子表:

@comments = Comment.joins(:post).where(:posts => { :user_id => @user.id })

答案 1 :(得分:1)

您还可以执行以下操作:

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

<% @user.comments.each do |comment| %>
   <%= comment.id %> <br/>
   <%= comment.text %>
<% end %>
相关问题