From 3fa2b3161fb69bdd6a7eb1410bb1e8a7b5e3d223 Mon Sep 17 00:00:00 2001 From: Matt-Yorkley <9029026+Matt-Yorkley@users.noreply.github.com> Date: Tue, 28 Apr 2020 01:07:15 +0200 Subject: [PATCH] Avoid N+1s when using OrderCycle#exchanges_supplying --- app/models/order_cycle.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/models/order_cycle.rb b/app/models/order_cycle.rb index c4b0bbcda3..9c7837c4c4 100644 --- a/app/models/order_cycle.rb +++ b/app/models/order_cycle.rb @@ -240,7 +240,8 @@ class OrderCycle < ActiveRecord::Base end def exchanges_supplying(order) - exchanges.supplying_to(order.distributor).with_any_variant(order.variants.map(&:id)) + variants_relation = Spree::Variant.joins(:line_items).merge(Spree::LineItem.in_orders(order)) + exchanges.supplying_to(order.distributor).with_any_variant(variants_relation) end def coordinated_by?(user)