Ensure puzzle uniqueness per contestant validation error is shown
All checks were successful
CI / scan_ruby (push) Successful in 17s
CI / scan_js (push) Successful in 12s
CI / lint (push) Successful in 13s
CI / test (push) Successful in 33s

This commit is contained in:
sto
2025-06-27 08:59:27 +02:00
parent 9862f0c74b
commit b6da55723d
3 changed files with 6 additions and 1 deletions

View File

@@ -36,7 +36,8 @@ class Completion < ApplicationRecord
before_save :add_time_seconds
validates :display_time_from_start, presence: true, format: { with: /\A(((\d\d|\d):\d\d|\d\d|\d):\d\d|\d\d|\d)\z/ }
validates :puzzle_id, uniqueness: { scope: :contestant }
validates :contestant_id, uniqueness: { scope: :puzzle }, if: -> { contest.puzzles.size == 1 }
validates :puzzle_id, uniqueness: { scope: :contestant }, if: -> { contest.puzzles.size > 1 }
def add_time_seconds
arr = display_time_from_start.split(":")