From 563f9a4f5f44f9c7f2784da94599d5337b6c587d Mon Sep 17 00:00:00 2001 From: Matt-Yorkley <9029026+Matt-Yorkley@users.noreply.github.com> Date: Wed, 29 May 2019 11:40:28 +0100 Subject: [PATCH] Remove another N+1 --- app/controllers/admin/enterprises_controller.rb | 10 +++++++++- .../api/admin/for_order_cycle/enterprise_serializer.rb | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/app/controllers/admin/enterprises_controller.rb b/app/controllers/admin/enterprises_controller.rb index 3a7d7e0044..3f62509eb0 100644 --- a/app/controllers/admin/enterprises_controller.rb +++ b/app/controllers/admin/enterprises_controller.rb @@ -142,7 +142,15 @@ module Admin @order_cycle = OrderCycle.find_by_id(params[:order_cycle_id]) if params[:order_cycle_id] coordinator = Enterprise.find_by_id(params[:coordinator_id]) if params[:coordinator_id] @order_cycle = OrderCycle.new(coordinator: coordinator) if @order_cycle.nil? && coordinator.present? - OpenFoodNetwork::OrderCyclePermissions.new(spree_current_user, @order_cycle).visible_enterprises + + enterprises = OpenFoodNetwork::OrderCyclePermissions.new(spree_current_user, @order_cycle) + .visible_enterprises + + unless enterprises.empty? + enterprises.includes( + supplied_products: [:supplier, :variants, master: [:images]] + ) + end when :index if spree_current_user.admin? OpenFoodNetwork::Permissions.new(spree_current_user). diff --git a/app/serializers/api/admin/for_order_cycle/enterprise_serializer.rb b/app/serializers/api/admin/for_order_cycle/enterprise_serializer.rb index 0229554634..4d2afc9ed5 100644 --- a/app/serializers/api/admin/for_order_cycle/enterprise_serializer.rb +++ b/app/serializers/api/admin/for_order_cycle/enterprise_serializer.rb @@ -37,7 +37,7 @@ class Api::Admin::ForOrderCycle::EnterpriseSerializer < ActiveModel::Serializer end def products - @products ||= products_scope.includes(:variants, :supplier, master: [:images]) + @products ||= products_scope end def order_cycle