ruby-on-rails - 嵌套包含与 Rails 上的 where

标签 ruby-on-rails rails-activerecord

假设我们有 3 个表:

products (title, product_type_id)
product_types (title)
product_type_options (product_type_id, size)

我想加载产品、其类型以及仅特定的product_type_options (product_type_options.size = 'XL')

rails 中是否可以不用 N+1 查询?

类似于:

Product.includes( product_type: [product_type_options] )
       .where("product_type_options.size = 'XL'")

我无法让它与 where 参数一起使用。任何想法?

最佳答案

这应该有效

Product.includes(product_type: :product_type_options)
  .where(product_types: { product_type_options: { size: 'XL' } })

关于ruby-on-rails - 嵌套包含与 Rails 上的 where,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42226480/

相关文章:

ruby-on-rails - Rails - 带有自定义路由的 link_to

ruby-on-rails - Rails 观察器不工作

用于 Ruby On Rails 的 MySQL Gem

css - 如何加载和使用字体图标?

ruby-on-rails - rbenv:从主目录安装 ruby

ruby-on-rails - 带有 Ruby/Rails 应用程序的 Paypal 网站支付标准

ruby-on-rails - 仅覆盖默认范围(特别是订单),而不覆盖 Rails 中的其他任何内容

ruby-on-rails - 如何在不调用 Model.last.id 的情况下在 Rails 中获取下一个可用的唯一 ID?

ruby-on-rails - shoulda-matchers 的 ActiveRecord 匹配器是否违反了 "test behavior not implementation"规则?

ruby - 严格验证自定义异常不起作用