will_paginateプラグインを使ってみる

前回、Railsのアップデートを敢行したわけですが。
その中に、ページングのやり方が新しくなっている、というのがありました(ちなみに、前回は、classic_paginationというプラグインをインストールすることで修正なしにしています)。

ですが、classic_paginationのREADMEには今後アップデートはないということが明記されており、同じくそこで、will_paginateというものを今後利用するようにとあります。
もののついでなので、早々に切り替えてしまうことにしました。

インストール

こちらを参考にした限りでは、ちょっと前までプラグインだったようですが、gemになったようです。
というわけで、コマンドプロンプトから以下コマンド。

gem install will_paginate

Updating metadata for 1 gems from http://gems.rubyforge.org/
.
complete
Successfully installed will_paginate-2.2.2
1 gem installed
Installing ri documentation for will_paginate-2.2.2...
Installing RDoc documentation for will_paginate-2.2.2...

こんな結果になるはずー。

使ってみる

まずは、/config/environment.rbの一番最後に以下のコードを追加します。

RUBY:
  1. require 'will_paginate'

次に、コントローラーとビューを修正します。

コントローラーは、

RUBY:
  1. @pages, @models = paginate(:models,
  2.                            :conditions => ["is_confirmed = ?", "0"],
  3.                            :order => "updated_at asc",
  4.                            :per_page => 5)

こういうのを

RUBY:
  1. @models = Model.paginate(:page => params[:page],
  2.                          :conditions => ["is_confirmed = ?", "0"],
  3.                          :order => "updated_at asc",
  4.                          :per_page => 5)

みたいに直します。

で、ビューのページングのところは、

HTML:
  1. <%= will_paginate @models, :prev_label => '&#171;前', :next_label => '次&#187;' %>

こんな風にするとよいです。
修正し終わったら、サーバーを再起動させると、うまく表示されることと思います。

あとは、will_paginateのgemの中にexampleというフォルダがあるので、そこにあるpagination.cssというスタイルシートのサンプルを利用すると見た目もサクッと整います。
すでにAppleStore・Digg・flickrとよさげなものが作られているので、こだわりがなければこれを使ってしまうのがいいでしょう。

ビューに書いていた前のページングのソースと見比べると、格段に簡単になっていますね。
いいことですわー。

Via:

このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加 |

0 Responses to “will_paginateプラグインを使ってみる”


  1. No Comments

Leave a Reply