php模型层如何写,模型层的写作风格以及through

# -*- coding: utf-8 -*- class User ActiveRecord::Base ----------------------------- include Activity::UserMethods end --------------------------------------------------------------------------------------------------------- class Activity

# -*- coding: utf-8 -*-

class User < ActiveRecord::Base

-----------------------------

include Activity::UserMethods

end

---------------------------------------------------------------------------------------------------------

class Activity < ActiveRecord::Base

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 < ActiveRecord::Base

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

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值