首頁 > 資料庫 > mysql教程 > 模型层的写作风格以及through

模型层的写作风格以及through

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
發布: 2016-06-07 15:04:19
原創
1388 人瀏覽過

# -*- 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

相關標籤:
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
關於模型的問題
來自於 1970-01-01 08:00:00
0
0
0
模型不收斂是怎麼回事?
來自於 1970-01-01 08:00:00
0
0
0
Laravel關聯模型的問題
來自於 1970-01-01 08:00:00
0
0
0
Laravel - 將模型關係更新到另一個模型
來自於 1970-01-01 08:00:00
0
0
0
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板