【问题标题】:Specifying Conditions on Nested Eager Loaded Associations指定嵌套急切加载关联的条件
【发布时间】:2015-09-09 06:52:24
【问题描述】:

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" }

以上都达到了吗?

【问题讨论】:

  • 你可以试试这个Article.includes(user: [:comments]).where(id: 3, comments: { text: "wow" })

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


【解决方案1】:

首先,您不需要预先加载即可从一篇文章中选择 cmets(据我了解,您正在尝试这样做)。

对于给定的文章

@article = Article.first

您可以使用表连接查询所有带有文本“哇”的 cmets

@comments = @article.comments.where(text: 'wow')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-17
    • 1970-01-01
    相关资源
    最近更新 更多