# -*- coding: utf-8 -*-
class user
-----------------------------
include activity::usermethods
end
---------------------------------------------------------------------------------------------------------
class activity attr_accessible :title, :content, :start_time, :end_time
belongs_to :creator, :class_name => 'user', :foreign_key => :creator_id
validates :creator, :presence => true
validates :title, :presence => true
validates :content, :presence => true
validates :start_time, :end_time, :presence => true
validate :validate_start_and_end_time
def validate_start_and_end_time
errors.add(:base,'开始时间必须早于结束时间') if self.start_time > self.end_time
end
module usermethods
def self.included(base)
base.has_many :activities, :foreign_key => :creator_id
end
end
include activitymembership::activitymethods
end
---------------------------------------------------------------------------------------------------------
class activitymembership attr_accessible :activity, :user
belongs_to :user
belongs_to :activity, :foreign_key => :activity_id
validates :user, :presence => true
validates :activity, :presence => true
module activitymethods
def self.included(base)
base.send :include, instancemethods
base.has_many :activity_memberships
base.has_many :members, :through => :activity_memberships, :source => :user
end
module instancemethods
def add_member(user)
self.activity_memberships.create :user => user
end
def remove_member(user)
self.activity_memberships.where(:user_id=>user.id).destroy_all
end
end
end
end