"coke").includes(:products).to_sql 品牌有_很多产品,产品属于-6ren">
gpt4 book ai didi

ruby-on-rails-3 - 如何在 Rails 3 AREL 语句中使用 "includes"?

转载 作者:行者123 更新时间:2023-12-04 07:04:59 26 4
gpt4 key购买 nike

我正在尝试查看背后的 SQL 和 AREL 语句:

Brand.where(:subdomain => "coke").includes(:products).to_sql

品牌有_很多产品,产品属于_品牌。

但是,上面的语句只会产生:

"SELECT `brands`.* FROM `brands` WHERE `brands`.`subdomain` = 'coke'"

为什么我在 SQL 中看不到 products 表的信息?

最佳答案

当您使用 includes 语句时,Rails 将为每个表生成一个单独的查询(因此,如果您包含另外 2 个表,则总共会有 3 个查询)。

您可以改用 joins 语句,它会将所有内容合并到一个查询中,但是您可能会遇到性能问题。此外,如果您的任何 where(...) 条件查询包含的表,它将被集中到一个查询中。

参见 this other similar question有关 Rails 行为的更多信息。

关于ruby-on-rails-3 - 如何在 Rails 3 AREL 语句中使用 "includes"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6526465/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com