3

ここでのクエリは少し複雑です。関連する 3 つのテーブル: ユーザー、投稿、およびコメント。ユーザーには_多くの投稿とコメントがあり、投稿はユーザーに属し_多くのコメントがあり、コメントはユーザーと投稿に属しています. とは言うものの、Rails のコントローラーで、ユーザーが自分のすべての投稿で受け取ったすべてのコメントを見つけようとしています。私はこれを試しました:

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

しかし、それは本当にうまくいきませんでした。これはおそらく簡単な解決策です。

4

2 に答える 2

7

そのためには、posts テーブルに参加する必要があります。

@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 に答える