From dc17cad1549825a86710eb44563274327ba345c0 Mon Sep 17 00:00:00 2001 From: Thor77 Date: Sun, 2 Dec 2018 13:51:54 +0100 Subject: [PATCH] Ensure uniqueness of generated Tournament.code --- app/models/tournament.rb | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/app/models/tournament.rb b/app/models/tournament.rb index 68b8495..3813f08 100644 --- a/app/models/tournament.rb +++ b/app/models/tournament.rb @@ -12,7 +12,16 @@ class Tournament < ApplicationRecord alias_attribute :owner, :user - after_initialize do |tournament| - tournament.code ||= SecureRandom.hex 3 + after_initialize :generate_code + + private + + def generate_code + return unless code.nil? + + loop do + self.code = SecureRandom.hex(3) + break if errors['code'].blank? + end end end