【发布时间】:2018-05-26 07:13:13
【问题描述】:
我想获取属于“饮料”类别的所有客户及其产品。
Here are my relations:
Customer has_many orders
Order has_many products through order_details
Product has_many Orders through order_details
Product belongs to Category
我试过这个,但它并没有给所有客户。它只为订购饮料的客户提供服务。
Customer.includes(orders: {products: :category}).where(categories: { category_name: "Beverages"})
注意:我不想过滤客户记录。我需要对产品应用过滤器,因为在这种情况下加载所有记录是无用的。
【问题讨论】:
-
我从未尝试过这么长的链条,但也许:
Category.where(category_name: "Beverages").first.products.orders.customers -
@iGian 这不会急于加载记录。此外,我们需要所有客户,而不是拥有饮料类别的客户。
-
是的,对不起,我读的太匆忙了,真丢脸。我错过了筑巢。我现在仔细阅读,您的代码可以完美地吸引订购饮料的客户。但我不清楚您真正想要实现什么“..它并没有给所有客户。” 您还打算获取每个客户购买的同类别饮料的其他产品吗?
标签: ruby-on-rails ruby-on-rails-4 activerecord rails-activerecord