22 lines
432 B
Ruby
22 lines
432 B
Ruby
class Invitation < ApplicationRecord
|
|
# Relations
|
|
belongs_to :user
|
|
belongs_to :invitee, class_name: "User", foreign_key: 'invited_user_id', optional: true
|
|
|
|
# Validations
|
|
validates_presence_of :user
|
|
|
|
# Hooks
|
|
before_create :generate_token
|
|
|
|
# Scopes
|
|
scope :unused, -> { where(used_at: nil) }
|
|
scope :used, -> { where.not(used_at: nil) }
|
|
|
|
private
|
|
|
|
def generate_token
|
|
self.token = SecureRandom.hex(8)
|
|
end
|
|
end
|