class User < ApplicationRecord has_secure_password has_many :candidates, foreign_key: "recruiter_id" validates_presence_of :email validates_presence_of :name validates_presence_of :role validates :reset_token, uniqueness: true, allow_nil: true def setup_reset gen_reset_token save end private def gen_reset_token loop do self[:reset_token] = SecureRandom.urlsafe_base64(10) self[:reset_timestamp] = DateTime.now break unless User.exists?(reset_token: self[:reset_token]) end end end