From 08860cbfabfcf90be7ea3253bb6e9657e5550c03 Mon Sep 17 00:00:00 2001 From: cryptogopher Date: Tue, 24 Mar 2020 22:16:27 +0100 Subject: [PATCH] Query optimizations --- app/controllers/ingredients_controller.rb | 2 +- app/controllers/measurements_controller.rb | 2 +- app/models/formula.rb | 3 +-- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/app/controllers/ingredients_controller.rb b/app/controllers/ingredients_controller.rb index 69340c0..e0a4d83 100644 --- a/app/controllers/ingredients_controller.rb +++ b/app/controllers/ingredients_controller.rb @@ -217,7 +217,7 @@ class IngredientsController < BodyTrackingPluginController end def prepare_nutrients - @quantities = @project.nutrients_column_view.quantities + @quantities = @project.nutrients_column_view.quantities.includes(:formula) @ingredients, @requested_n, @extra_n, @formula_q = @project.ingredients .filter(session[:i_filters], @quantities) end diff --git a/app/controllers/measurements_controller.rb b/app/controllers/measurements_controller.rb index 7562357..dfbfb3c 100644 --- a/app/controllers/measurements_controller.rb +++ b/app/controllers/measurements_controller.rb @@ -112,7 +112,7 @@ class MeasurementsController < BodyTrackingPluginController def prepare_readouts @scoping_measurement = @project.measurements.where(session[:m_filters][:scope]).first! - @quantities = @scoping_measurement.column_view.quantities + @quantities = @scoping_measurement.column_view.quantities.includes(:formula) @measurements, @requested_r, @extra_r, @formula_q = @project.measurements .includes(:source) .filter(session[:m_filters], @quantities) diff --git a/app/models/formula.rb b/app/models/formula.rb index 56b2564..9c51f3b 100644 --- a/app/models/formula.rb +++ b/app/models/formula.rb @@ -43,8 +43,7 @@ class Formula < ActiveRecord::Base errors = parser.errors quantities = Quantity.where(project: self.quantity.project, name: identifiers) - quantities_names = quantities.pluck(:name) - (identifiers - quantities_names).each do |q| + (identifiers - quantities.map(&:name)).each do |q| errors << [:unknown_quantity, {quantity: q}] end