2011-07-27 5 views
1

私は、日付を付けて保存された予定のあるモデル/テーブルを持っています。私はアクティブなレコードだけを返すメソッドを作成したい。 1つはすべてのレコード、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