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

In: Ruby / Rails| technology

23 4月 2008

前回、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の一番最後に以下のコードを追加します。

require 'will_paginate'

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

コントローラーは、

    @pages, @models = paginate(:models,
                           :conditions => ["is_confirmed = ?", "0"],
                           :order => "updated_at asc",
                           :per_page => 5)

こういうのを

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

みたいに直します。

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

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

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

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

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

Via:


Comment Form

About this blog

ゆるーく、ふわーっと、興味のままに。

自分のかたわらに置いておくメモ代わり。

Photostream