前回、Railsのアップデートを敢行したわけですが。
その中に、ページングのやり方が新しくなっている、というのがありました(ちなみに、前回は、classic_paginationというプラグインをインストールすることで修正なしにしています)。
ですが、classic_paginationのREADMEには今後アップデートはないということが明記されており、同じくそこで、will_paginateというものを今後利用するようにとあります。
もののついでなので、早々に切り替えてしまうことにしました。
インストール
こちらを参考にした限りでは、ちょっと前までプラグインだったようですが、gemになったようです。
というわけで、コマンドプロンプトから以下コマンド。
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 => '«前', :next_label => '次»' %>
こんな風にするとよいです。
修正し終わったら、サーバーを再起動させると、うまく表示されることと思います。
あとは、will_paginateのgemの中にexampleというフォルダがあるので、そこにあるpagination.cssというスタイルシートのサンプルを利用すると見た目もサクッと整います。
すでにAppleStore・Digg・flickrとよさげなものが作られているので、こだわりがなければこれを使ってしまうのがいいでしょう。
ビューに書いていた前のページングのソースと見比べると、格段に簡単になっていますね。
いいことですわー。
Via:

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