diff options
author | Yorick Peterse <yorickpeterse@gmail.com> | 2018-07-30 13:17:31 +0000 |
---|---|---|
committer | Yorick Peterse <yorickpeterse@gmail.com> | 2018-07-30 13:17:31 +0000 |
commit | 854eb4bece8a3a20d08462e295e3989b663e34d3 (patch) | |
tree | dcde004a00c019ec1bdd0713eb24ee12e595bc3d | |
parent | 31a4f48cde9ec5b869691e3e03713928c5ab9aa8 (diff) | |
parent | 90778e5d2752d4c10a536127d6ce75c32951b8c6 (diff) | |
download | gitlab-ce-854eb4bece8a3a20d08462e295e3989b663e34d3.tar.gz |
Merge branch 'ab-49609-internal-ids-require-init' into 'master'
Require has_internal_id to pass a init block.
Closes #49609
See merge request gitlab-org/gitlab-ce!20873
-rw-r--r-- | app/models/concerns/atomic_internal_id.rb | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/app/models/concerns/atomic_internal_id.rb b/app/models/concerns/atomic_internal_id.rb index 164c704260e..4fef615e6e3 100644 --- a/app/models/concerns/atomic_internal_id.rb +++ b/app/models/concerns/atomic_internal_id.rb @@ -26,6 +26,10 @@ module AtomicInternalId module ClassMethods def has_internal_id(column, scope:, init:, presence: true) # rubocop:disable Naming/PredicateName + # We require init here to retain the ability to recalculate in the absence of a + # InternaLId record (we may delete records in `internal_ids` for example). + raise "has_internal_id requires a init block, none given." unless init + before_validation :"ensure_#{scope}_#{column}!", on: :create validates column, presence: presence |