Sha256: 076c56bc18523aa52464065c38ed07244ef41819fe143fd83c77fe4a07757f65
Contents?: true
Size: 649 Bytes
Versions: 9
Compression:
Stored size: 649 Bytes
Contents
# frozen_string_literal: true class Invite < ApplicationRecord include PagesCore::HasRoles belongs_to :user has_many :roles, class_name: "InviteRole", dependent: :destroy before_validation :ensure_token validates :email, presence: true, format: { with: /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/i }, uniqueness: { case_sensitive: false } validates :token, presence: true validate :user_already_exists private def ensure_token self.token ||= SecureRandom.hex(32) end def user_already_exists return unless User.find_by_email(email) errors.add(:email, :taken) end end
Version data entries
9 entries across 9 versions & 1 rubygems