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 回答