Skip to content

Commit 136f141

Browse files
committed
add validation
1 parent 02bb976 commit 136f141

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

app/models/measure_category.rb

+14
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ class MeasureCategory < VersionedRecord
77
validates :category_id, uniqueness: {scope: :measure_id}
88
validates :measure_id, presence: true
99
validates :category_id, presence: true
10+
validate :single_category_per_taxonomy, on: :create
1011

1112
after_commit :set_relationship_updated, on: [:create, :update, :destroy]
1213

@@ -36,4 +37,17 @@ def set_relationship_updated
3637
measure.update_column(:relationship_updated_by_id, ::PaperTrail.request.whodunnit)
3738
end
3839
end
40+
41+
def single_category_per_taxonomy
42+
if category && category.taxonomy && !category.taxonomy.allow_multiple
43+
existing_categories = self.class.where(
44+
category_id: category.taxonomy.categories.pluck(:id), # Ensure you're using IDs here
45+
measure_id: measure_id
46+
)
47+
48+
if existing_categories.count >=1
49+
errors.add(:category, "This measure already has a category in the same taxonomy. Multiple categories are not allowed for the taxonomy.")
50+
end
51+
end
52+
end
3953
end

0 commit comments

Comments
 (0)