named_scope

  • with_scope ってのが在ったよね
  • そして scope に名前を付けられる
    • それを合成できる
    • 集合の積のように
      • メソッドチェインで
      • SQLレベルで合成してくれる、AND繋ぎのみで後ろから
      • ORDER とか LIMIT は先勝ち、2.3で変わる改善する

scope_do

Description
scope_do is a tiny utilities to define useful named_scope. scope_do provides 

. named_acl : enable User - Group - Target style access control list. 
. chained_scope : enable defined named_scope method chain. 
. has_children : define scope to load child records 
  • named_acl
    • 便利です
    • ターゲットは自分で指定する
    • via とか条件とかも適宜指定するとか、勝手に探してくれたり
      • 名前変えようか
  • chained_scope
    • 条件が空だったら何もしない scope を作るようにする。
    • いろいろな検索条件が並列してあるとき、指定されてなかったら scope を狭めなくていいわけだよね。でも一々そんな条件式書くの大変だ。
  • has_children
    • 子要素がどんだけ以上あるかとかの scope を作る
  • スペック
    • scope_do のスペック、いろいろ工夫してる
      • DB関係汚さないようにとか
      • ファクトリーガール
    • プラグインのテストの書き方
    • fixtures書くの大変だし
  • SQLクエリの書き方
    • あとで合成したりするの想定していろいろ工夫したり
    • クエリ最適化も想定したり、確かめたり