Improve denormalized filters note

This commit is contained in:
Jose Farias
2024-11-06 18:13:05 -06:00
parent 9efe94a277
commit f7495ac1fa
2 changed files with 4 additions and 3 deletions
+1 -1
View File
@@ -10,7 +10,7 @@ class Filter < ApplicationRecord
filter.save!
filter
rescue ActiveRecord::RecordNotUnique
find_by!(params: filter.params).tap(&:touch) # possible thanks to denormalized params
find_by!(params: filter.params).tap(&:touch)
end
end
+3 -2
View File
@@ -16,8 +16,9 @@ module Filter::Resources
private
# `denormalize_resource_ids` stores resource ids in the params column to
# 1) enforce uniqueness via db constraints
# 2) easily turn all filter params into a query string
# 1) Enforce uniqueness via db constraints
# 2) Look up identical filters by a single column
# 3) Easily turn all filter params into a query string
def denormalize_resource_ids
params["bucket_ids"] = buckets.ids
params["tag_ids"] = tags.ids