この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。
rails2.0に移行したらpaginateがつかえなくなりました。
なので、代わりとなるwill_paginateというプラグインを使ってみます。
まずプラグインのインストールから
プロジェクトフォルダ内で、
# script/plugin install svn://errtheblog.com/svn/plugins/will_paginate
A /home/sakuma/workspace/test/vendor/plugins/will_paginate
A /home/sakuma/workspace/test/vendor/plugins/will_paginate/test
A /home/sakuma/workspace/test/vendor/plugins/will_paginate/test/helper.rb
A /home/sakuma/workspace/test/vendor/plugins/will_paginate/test/console
A /home/sakuma/workspace/test/vendor/plugins/will_paginate/test/database.yml
A /home/sakuma/workspace/test/vendor/plugins/will_paginate/test/boot.rb
A /home/sakuma/workspace/test/vendor/plugins/will_paginate/test/lib
A /home/sakuma/workspace/test/vendor/plugins/will_paginate/test/lib/activerecord_test_connector.rb
・
・
・
— Mislav
すごい勢いで、いろいろ入いりました。
controllerを修正します。
paginateしたいアクションに
以下を追加(#は以前のpaginate)
# @pages, @items = paginate(:items, :per_page => 3)
@items = Item.paginate(:page=>params[:page], :per_page=>3)
※ “:page”は表示したいのページのパラメーターです。
現在表示されているページパラメーターはparams[:page]で取ってこれます。
書き方的には
Model名.paginate(:page=>params[:page], 以下前と同様)
て感じでしょうか。
viewも修正します。
表示方法は、以前と同様、
<% for item in @items %>
<%=h item.name %> <%=h item.body %><br />
<% end %>
でいけます。
ページを表示させるリンクには
<%= will_paginate(@items) %>
を付けます。
こんな感じにpaginateできました。画面が小さくて見づらいですが。。。
案外簡単。
google先生によると、
Item.paginate_by_user_idとか
@items.page_count(総ページ数の取得)とかもできる模様。
いろいろ試せます。