您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

模型层的写作风格以及through

2024/4/29 21:11:42发布98次查看
# -*- coding: utf-8 -*- class user activerecord::base ----------------------------- include activity::usermethods end --------------------------------------------------------------------------------------------------------- class activity
# -*- 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
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product