【发布时间】:2018-01-24 14:01:02
【问题描述】:
我有一个问题 - 我不知道如何仅在满足条件时获取关联记录。
我有帖子模型和评论,帖子has_many :comments,评论belongs_to :post。
现在,我想检索所有帖子,但仅限于特定的 cmets(假设 user_id = 1)。 我怎样才能做到这一点? 查询喜欢
Post.includes(:comments).where("comments.user_id = ?", "1") 只会检索一些帖子,我想要所有帖子,但仅限于 user_id 等于 1 的 cmets。
我想我应该使用某种 LEFT JOIN,也许像
posts.joins("LEFT JOIN comments ON posts.id comments.post_id")
但我不确定如何放置限制右表结果的条件。
【问题讨论】:
-
will retrieve only some Posts是什么意思?你没有得到任何你期望得到的结果? -
如果您想要帖子中包含 id 为 1 的用户的 cmets,上述查询应该可以工作。除非你期待其他回应。你能告诉我们你得到的回应吗?
-
正如我所说,我想要所有帖子,但不要加载所有帖子 cmets,只加载满足条件的 cmets。
标签: ruby-on-rails ruby activerecord relational-database