2010年12月26日日曜日

Rails3でModel.allなどのデフォルトのソート値を変えたい

default_scopeとnamed_scopeを使う

default_scopeは使い方には注意が必要です。publishedをdefault_scopeでやってしまうと、管理画面などで非公開中の記事も含めた結果を得たい場合に無駄なコードが発生しまいます。それよりはnamed_scopeを使った方がいいし、メソッド名がさらに何をしているかを分かりやすくしてくれます。

元記事はRyan's Scraps - What's New in Edge Rails: Default Scoping

CakePHPではdefault_scopeと同じことはできますが、named_scopeは今もメソッドを用意するのがベストプラクティスなんじゃないでしょうか。もっといいやり方知ってるよーって方は教えて下さいm(_ _)m。この記事おすすめです。Sooey - CakePHPを使ったMVC設計のベストプラクティス

0 件のコメント: