これからのpaginate。
Rails2.0では今まで使ってたpaginateが無くなるので、別途プラグインが必要。次の記事で紹介されてたpaginating_findを使ってみました。
徒然なる開発メモ : will_paginate or paginating_find
プラグインとしてインストールしたら、今までのこんな感じのコードを
@foo_pages, @foos = paginate(:foo, :conditions=>[....], :order => ...., :per_page => 20,
こんな風に書き換える。
@foos = Foo.find(:all, ::conditions => [...], :order => ...., :page => {:size =>20, :current => params[:page]})
ページ移動リンクはこんな風に書く。
<%= link_to "前へ", {:page => @foos.previous_page} if @foos.previous_page? %> <%= paginating_links(@foos, :window_size => 20) %> <%= link_to "次へ", {:page => @foos.next_page} if @foos.next_page? %>
これで警告も出なくなってRails2.0でも安心。