Scope
說明
- 主要是將常用的查詢條件宣告起來重覆使用
- 針對資料庫設計欄位限制、或者選取資料的範圍
使用情境
- 當有過於複雜的資料查詢
- 當有重覆使用的資料查詢
使用方式
-
沒帶參數的方式
scope :public, where( :is_public => true )
-
帶有參數的方式
class Product < ActiveRecord::Base scope :cheap, cheaper_than(5) def self.cheaper_than(price) where("price < ?", price) end end </cod
-
可以串接在一起,順序沒有影響
class Event < ActiveRecord::Base scope :public, where( :is_public => true ) scope :recent_three_days, where(["created_at > ? ", Time.now - 3.days ]) end Event.public.recent_three_days