From dfc651ed2c1cefffb4b720b4b7179363efb6b4cc Mon Sep 17 00:00:00 2001 From: Matt-Yorkley <9029026+Matt-Yorkley@users.noreply.github.com> Date: Fri, 28 Apr 2023 19:13:22 +0100 Subject: [PATCH 1/2] Convert Permissions::Order#visible_line_items to a relation with or query This change looks innocuous but the result of converting this into a nice relation instead of two queries stuck together with the pipe operator (|) can make a huge difference when chaining this into subqueries. The result set is ultimately the same, but the queries can be built without first returning all the ids and then sticking those ids in an array. --- app/services/permissions/order.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/services/permissions/order.rb b/app/services/permissions/order.rb index c7241f533c..86b38172b5 100644 --- a/app/services/permissions/order.rb +++ b/app/services/permissions/order.rb @@ -31,9 +31,9 @@ module Permissions end def visible_line_items - Spree::LineItem.where(id: - editable_line_items.select(:id) | - produced_line_items.select("spree_line_items.id")) + Spree::LineItem + .where(id: editable_line_items.select(:id)) + .or(Spree::LineItem.where(id: produced_line_items.select("spree_line_items.id"))) end # Any line items that I can edit From a170b93cc1231cb5b11c9e76e4f782966de31bff Mon Sep 17 00:00:00 2001 From: David Cook Date: Fri, 5 May 2023 15:34:23 +1000 Subject: [PATCH 2/2] Simplify further Co-authored-by: Maikel --- app/services/permissions/order.rb | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/app/services/permissions/order.rb b/app/services/permissions/order.rb index 86b38172b5..842e858321 100644 --- a/app/services/permissions/order.rb +++ b/app/services/permissions/order.rb @@ -31,9 +31,7 @@ module Permissions end def visible_line_items - Spree::LineItem - .where(id: editable_line_items.select(:id)) - .or(Spree::LineItem.where(id: produced_line_items.select("spree_line_items.id"))) + editable_line_items.or(produced_line_items) end # Any line items that I can edit