这里的查询有点复杂。三个相关表:用户,帖子和评论。用户有很多帖子和评论,帖子属于用户和has_many评论,评论属于用户和帖子。也就是说,我正在尝试使用Rails,在我的控制器中找到用户在所有帖子中收到的所有评论。我试过这个:
@comments = Comment.where(:post_id.user => @user.id)
但这并没有真正成功。这可能是一个简单的解决方案,帮助?
答案 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 %>