0

「記事」と呼ばれるモデルと「コメント」と呼ばれる別のモデルがあり、各記事に0個以上のコメントがあり、各コメントにユーザーが関連付けられている場合、次のことを行うにはどうすればよいですか:

サイト上のすべての記事と、特定のユーザーが行ったコメントを検索します

SQL では:

SELECT * FROM articles LEFT OUTER JOIN comments ON articles.id = comments.article_id AND comments.user_id = 2

私はこれをやってみました:

Article.joins('LEFT OUTER JOIN comments ON articles.id = comments.article_id AND comments.user_id = 2)

ここでの結果はresult.first.comments、記事のすべてのコメントを私に与えることです。最後の部分に条件を追加することでこれを解決できますが、熱心ではありません

4

2 に答える 2

2

特定のユーザーとそれに対応する記事によって作成されたすべてのコメントが必要な場合は、次のようにします。

Comment.joins(:articles).where("comments.user_id" => 2).select("comments.*, articles.*")
于 2012-07-05T22:58:23.050 に答える
0

で試してみArticle.joins(:comments).where("comments.user_id" => 2)ませんか?

詳細については、こちらをご覧ください。

于 2012-07-05T12:02:59.583 に答える