Railsの新機能:名前付きスコープ

Edge Railsには、検索用の名前付きフィルター条件を定義する機能があります。

クラスUser <ActiveRecord :: Base

named_scope:active ,: conditions => {:active => true}

named_scope:inactive ,: conditions => {:active => false}

named_scope:recent、lambda {{:conditions => ['created_at>?'、1.week.ago]}}

終わり





標準的な使用:

User.active

#= User.find(:all ,: conditions => {:active => true})

User.inactive

#= User.find(:all ,: conditions => {:active => false})

User.recent

#= User.find(:all ,: conditions => ['created_at>?'、1.week.ago])


さらに、これらのメソッドはネストできます。

User.active.recent


同じことをする

User.with_scope(:conditions => {:active => true})do

User.find(:all ,: conditions => ['created_at>?'、1.week.ago])

終わり


つまり、先週登録されたすべてのアクティブなユーザーを検索します。

この機能を使用するには、ベンダーの最後のレールが必要です。

レーキレール:フリーズ:エッジ




All Articles