From d8e6d98912330ef1ddd062b0cafb52cf733b83d5 Mon Sep 17 00:00:00 2001 From: Pau Perez Date: Fri, 17 Apr 2020 17:34:53 +0200 Subject: [PATCH] Preload line item's option_values This fixes an N+1 with the query ```sql SELECT "spree_option_values".* FROM "spree_option_values" INNER JOIN "spree_option_types" ON "spree_option_types"."id" = "spree_option_values"."option_type_id" INNER JOIN "spree_option_values_line_items" ON "spree_option_values"."id" = "spree_option_values_line_items"."option_value_id" WHERE "spree_option_values_line_items"."line_item_id" = 1679 ORDER BY spree_option_types.position asc ``` --- app/mailers/producer_mailer.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/mailers/producer_mailer.rb b/app/mailers/producer_mailer.rb index 153a99d358..48f3c6a34d 100644 --- a/app/mailers/producer_mailer.rb +++ b/app/mailers/producer_mailer.rb @@ -52,7 +52,7 @@ class ProducerMailer < Spree::BaseMailer def line_items_from(order_cycle, producer) @line_items ||= Spree::LineItem. - includes(variant: [:product, { option_values: :option_type }]). + includes(:option_values, variant: [:product, { option_values: :option_type }]). from_order_cycle(order_cycle). sorted_by_name_and_unit_value. merge(Spree::Product.in_supplier(producer)).