summaryrefslogtreecommitdiff
path: root/app/models/group_membership.rb
blob: d9d48e7369f31fe79bf3bbd7bf966d90f4af856a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
class GroupMembership < ActiveRecord::Base
  attr_accessible :group_id, :item_type, :item_id

  belongs_to :group
  belongs_to :item, :polymorphic => true

  validates :item_id,
            :presence => true,
            :uniqueness => { :scope => [:group_id, :item_type] }

  validates :item_type,
            :presence => true,
            :uniqueness => { :scope => [:group_id, :item_id] }

  validates :item,
            :presence => true

  def to_s
    "#{self.item_type}: #{self.item}"
  end

  def item_type_allowed
    fist_item = self.group.group_memberships.first.try(:item)
    if fist_item
      return fist_item.class.name
    end
  end
end