class Forumer < ActiveRecord::Base ACCESS_READ = 0 ACCESS_REPLY = 1 ACCESS_TOPIC = 2 include Extra scope :access, lambda { |level| {:conditions => ["access >= ?", level]} } validates_uniqueness_of :group_id, :scope => [:forum_id, :access] validates_presence_of [:group_id, :forum_id] validates_inclusion_of :access, :in => 0..2 belongs_to :forum belongs_to :group before_create :init_variables def init_variables self.access ||= ACCESS_READ end def accesses {ACCESS_READ => "Read", ACCESS_REPLY => "Reply", ACCESS_TOPIC => "Post a Topic"} end end