From d6fddb9f7bfa74706eb8f4f2cd1171f16efcaf21 Mon Sep 17 00:00:00 2001 From: rebuilt Date: Thu, 23 Sep 2021 01:24:47 +0200 Subject: [PATCH] use activerecord-import gem to speed up csv uploads --- app/services/survey_responses_data_loader.rb | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/app/services/survey_responses_data_loader.rb b/app/services/survey_responses_data_loader.rb index 0586c8d0..60f1fb3a 100644 --- a/app/services/survey_responses_data_loader.rb +++ b/app/services/survey_responses_data_loader.rb @@ -1,7 +1,9 @@ require 'csv' class SurveyResponsesDataLoader + @@survey_item_responses = [] def self.load_data(filepath:) + @@survey_item_responses = [] csv_file = File.read(filepath) parsed_csv_file = CSV.parse(csv_file, headers: true) @@ -13,6 +15,8 @@ class SurveyResponsesDataLoader parsed_csv_file.each do |row| process_row row: row, survey_items: survey_items end + + SurveyItemResponse.import @@survey_item_responses end private @@ -34,7 +38,7 @@ class SurveyResponsesDataLoader likert_score = row[survey_item.survey_item_id] next if likert_score.nil? - SurveyItemResponse.create( + @@survey_item_responses << SurveyItemResponse.new( response_id: response_id, academic_year: academic_year, school: school, @@ -65,4 +69,4 @@ class SurveyResponsesDataLoader end AcademicYear.find_by_range("#{ay_range_start}-#{ay_range_end.to_s[2, 3]}") end -end \ No newline at end of file +end