2011-07-27 86 views
1

鑑於我有一個約會的模型/表,保存爲日期。我想創建一個只返回活動記錄的方法。一個用於所有記錄,一個用於對象。我的方法是可改進/可組合的嗎? Thx建議!活動記錄查詢的類方法

def self.actives 
    where("start_time >= ?", Date.today) 
end 

def is_active 
    where("start_time >= ?", Date.today) 
end 

回答

5

作用域是處理第一個過濾器的正確方法。見文件:http://api.rubyonrails.org/classes/ActiveRecord/NamedScope/ClassMethods.html

你的第二個過濾器將不能正常工作,將其替換:

def is_active? 
  start_time >= Date.today 
end 

我不明白爲什麼要這兩種方法結合起來。

注意:

  • Model.actives將爲您提供一個ActiveRecord的關係。您必須追加.all來觸發呼叫。然後你將有一個數組迭代。

  • instance.is_active?將提供一個布爾值

+0

thx對於大回復apneadiving! – daniel