From 0c12e242883db0fc9762ce4ef1f00d9d31d5b2c5 Mon Sep 17 00:00:00 2001 From: Nelson Jovel Date: Mon, 25 Nov 2024 17:05:07 -0800 Subject: [PATCH] chore: Make sure survey items are uniq by survey item ids --- app/models/survey_item.rb | 2 ++ db/migrate/20241126005312_add_uniqueness_to_survey_item.rb | 6 ++++++ db/schema.rb | 4 ++-- 3 files changed, 10 insertions(+), 2 deletions(-) create mode 100644 db/migrate/20241126005312_add_uniqueness_to_survey_item.rb diff --git a/app/models/survey_item.rb b/app/models/survey_item.rb index 5e31ed82..ec025abf 100644 --- a/app/models/survey_item.rb +++ b/app/models/survey_item.rb @@ -7,6 +7,8 @@ class SurveyItem < ActiveRecord::Base has_many :survey_item_responses + validates :survey_item_id, uniqueness: true + def score(school:, academic_year:) @score ||= Hash.new do |memo, (school, academic_year)| memo[[school, academic_year]] = diff --git a/db/migrate/20241126005312_add_uniqueness_to_survey_item.rb b/db/migrate/20241126005312_add_uniqueness_to_survey_item.rb new file mode 100644 index 00000000..e606e97f --- /dev/null +++ b/db/migrate/20241126005312_add_uniqueness_to_survey_item.rb @@ -0,0 +1,6 @@ +class AddUniquenessToSurveyItem < ActiveRecord::Migration[8.0] + def change + remove_index :survey_items, :survey_item_id + add_index :survey_items, :survey_item_id, unique: true + end +end diff --git a/db/schema.rb b/db/schema.rb index 55ac8504..23802336 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[8.0].define(version: 2024_10_31_205926) do +ActiveRecord::Schema[8.0].define(version: 2024_11_26_005312) do # These are extensions that must be enabled in order to support this database enable_extension "pg_catalog.plpgsql" @@ -510,7 +510,7 @@ ActiveRecord::Schema[8.0].define(version: 2024_10_31_205926) do t.boolean "on_short_form", default: false t.integer "survey_item_responses_count" t.index ["scale_id"], name: "index_survey_items_on_scale_id" - t.index ["survey_item_id"], name: "index_survey_items_on_survey_item_id" + t.index ["survey_item_id"], name: "index_survey_items_on_survey_item_id", unique: true end add_foreign_key "admin_data_items", "scales"