class Candidate < ApplicationRecord has_many :answers belongs_to :recruiter, class_name: "User" before_create :generate_test_hash validates_presence_of :recruiter_id validates_presence_of :test_hash validates_uniqueness_of :test_hash private def generate_test_hash loop do self[:test_hash] = SecureRandom.urlsafe_base64(8) break unless Candidate.exists?(test_hash: self[:test_hash]) end end end