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])
終わり

つまり、先週登録されたすべてのアクティブなユーザーを検索します。
この機能を使用するには、ベンダーの最後のレールが必要です。
レーキレール:フリーズ:エッジ


Source: https://habr.com/ru/post/J23008/


All Articles