在嵌套的Eager加载关联上指定条件

时间:2015-09-09 06:52:25

标签: ruby-on-rails ruby-on-rails-4 rails-activerecord eager-loading

ActiveRecord querying有一节关于在预先加载的关联中指定条件。具体而言,第13.2节。

根据它,我可以做到以下几点:

Article.includes(:comments).where(comments: { visible: true })

如果我想做这样的事情怎么办......

Article.where(param: "this").includes(user: [:comments]).where(comments: { text: "wow" })

当然,上述方法不起作用,我希望能够通过一些查询来实现这一目标。

按照目前的情况,在我的查询之后我做了articles[3].user.comments.select { |comment| comment.text == "wow" }

无论如何要实现上述目标?

1 个答案:

答案 0 :(得分:0)

首先,您不需要急切加载来从一篇文章中选择评论(据我所知您正在尝试这样做)。

对于给定的文章

@article = Article.first

您可以使用表格加入

查询文字'哇'的所有评论
@comments = @article.comments.where(text: 'wow')