You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

15 lines
450 B

class QuizResult < ApplicationRecord
validates :share_id, presence: true, uniqueness: true
validates :player_name, :stats, :score, presence: true
before_validation :generate_share_id, on: :create
private
def generate_share_id
self.share_id = SecureRandom.urlsafe_base64(8) if share_id.blank?
# Ensure uniqueness (very unlikely collision but good practice)
generate_share_id if QuizResult.exists?(share_id: share_id)
end
end