From 65ee27742aee7549a938c08950be4ac0a4fd579a Mon Sep 17 00:00:00 2001 From: Liam Morley Date: Thu, 2 Dec 2021 08:51:36 -0500 Subject: [PATCH] Perform single lookup for survey items rather than n lookups --- app/services/survey_responses_data_loader.rb | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/app/services/survey_responses_data_loader.rb b/app/services/survey_responses_data_loader.rb index d03efc2f..8803b864 100644 --- a/app/services/survey_responses_data_loader.rb +++ b/app/services/survey_responses_data_loader.rb @@ -6,11 +6,10 @@ class SurveyResponsesDataLoader File.open(filepath) do |file| headers = file.first - survey_items = CSV.parse(headers, headers: true).headers - .filter { |header| !header.nil? } + survey_item_ids = CSV.parse(headers, headers: true).headers + .filter { |header| header.present? } .filter { |header| header.start_with? 't-' or header.start_with? 's-' } - .map { |survey_item_id| SurveyItem.find_by_survey_item_id survey_item_id } - + survey_items = SurveyItem.where(survey_item_id: survey_item_ids) file.lazy.each_slice(1000) do |lines| survey_item_responses = CSV.parse(lines.join, headers: headers).map do |row|