class CourseGroup < ActiveRecord::Base # attr_accessible :title, :body belongs_to :course has_many :members has_many :memberships, :class_name => 'Member' has_many :member_principals, :class_name => 'Member', :include => :principal, :conditions => "#{Principal.table_name}.type='Group' OR (#{Principal.table_name}.type='User' AND #{Principal.table_name}.status=#{Principal::STATUS_ACTIVE})" has_many :principals, :through => :member_principals, :source => :principal has_many :users, :through => :members before_destroy :set_member_nil attr_accessible :name validates :name, :presence => true, :length => {:maximum => 20}, :uniqueness => {case_sensitive: false} def set_member_nil if self.members && self.members.count > 0 self.members.update_all("course_group_id = 0") end end end