From fd55c7c82a3f5ad3882d0d2ee0aa69d5f8e5947e Mon Sep 17 00:00:00 2001 From: Alex Basson Date: Thu, 23 Sep 2021 07:30:27 -0400 Subject: [PATCH] Optimize School lookup by qualtrics code query --- app/models/school.rb | 3 ++- app/services/survey_responses_data_loader.rb | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/app/models/school.rb b/app/models/school.rb index 488c69aa..13d65c5e 100644 --- a/app/models/school.rb +++ b/app/models/school.rb @@ -15,7 +15,8 @@ class School < ApplicationRecord def self.find_by_district_code_and_school_code(district_code, school_code) School - .where(district: District.find_by_qualtrics_code(district_code)) + .joins(:district) + .where(districts: {qualtrics_code: district_code}) .find_by_qualtrics_code(school_code) end diff --git a/app/services/survey_responses_data_loader.rb b/app/services/survey_responses_data_loader.rb index 1ac265b8..26f3c33d 100644 --- a/app/services/survey_responses_data_loader.rb +++ b/app/services/survey_responses_data_loader.rb @@ -36,7 +36,7 @@ class SurveyResponsesDataLoader return if school.nil? survey_items.each do |survey_item| - return unless SurveyItemResponse.where(response_id: response_id, survey_item: survey_item).empty? + return unless SurveyItemResponse.find_by(response_id: response_id, survey_item: survey_item).nil? likert_score = row[survey_item.survey_item_id] next if likert_score.nil?