Sha256: 90f144d8c066d6246351703e4a103e7cedc9ccda8a579e9bb18f349dc404bc3e

Contents?: true

Size: 557 Bytes

Versions: 3

Compression:

Stored size: 557 Bytes

Contents

require "clubhouse/concerns/models/emailable"

module Clubhouse
  module Concerns
    module Models
      module Invitation
        extend ActiveSupport::Concern

        include Concerns::Models::Emailable

        included do
          belongs_to :organization

          before_create :set_token

          validates :organization, presence: true
          validates :email, uniqueness: { scope: :organization_id }
        end

        private
        def set_token
          self.token = Clubhouse.generate_token
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
clubhouse-0.3.0 lib/clubhouse/concerns/models/invitation.rb
clubhouse-0.2.0 lib/clubhouse/concerns/models/invitation.rb
clubhouse-0.1.0 lib/clubhouse/concerns/models/invitation.rb