ページ化(pagination)はどうしましょう
Railsには多数のレコードを表示するときに,それらをページ分けする機能がある。これってよく使うUIだから,お世話になるんですが,Rails内蔵paginateの評判はあまりよろしくない。というわけで代替のプラグインを探している。
くまくまーさんのお勧めはwill_paginateということなので,さっそく使おうと思ったらリポジトリのプロトコルがsvn:だー。うち通してもらえないんです。http:にして欲しいよ。いろいろ苦労してインストールしてみたら,サーバ起動時にエラー。init.rbがエラーを吐いているのであった。どうもRails 1.2以降が必須みたい。うがー。
次にpaginating_findを試す。こっちはRails1.1.6でも問題なし。ただこれを使うなら,http://www.igvita.com/blog/2006/09/10/faster-pagination-in-rails/は必読。paginating_findはfindをページ用に拡張する(そのページに必要な分だけとってきてくれるようになる)。普通にfindメソッドを使えばよくて,オプションに:pageがキーとなるハッシュを入れると自動的にページ用のオブジェクトを返してくれる。こんな感じ。
@entries = Entry.find( :all, :include=>[:author], :conditions=>['date < ?', Date.today], :order=>'id DESC', :page=>{:current=>params[:page], :size=>10, :first=>1} )
ヘルパーとか用意されていないので,先程のサイトにあるヘルパーとパーシャルテンプレートをそのまま使うといいです。とりあえず使ってます。