如果我有一个名为“文章”的模型和另一个名为“评论”的模型,每个文章都有零个或多个评论,每个评论都有一个关联用户,我该如何做:
查找网站上的所有文章以及给定用户所做的任何评论
在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
给了我这篇文章的所有评论。我可以通过在最后一部分添加条件来解决这个问题,但是它不会急于
答案 0 :(得分:2)
如果您想要特定用户和相应文章发表的所有评论,这应该有效:
Comment.joins(:articles).where("comments.user_id" => 2).select("comments.*, articles.*")
答案 1 :(得分:0)
您可以尝试使用Article.joins(:comments).where("comments.user_id" => 2)
吗?
查看here了解更多信息。