その他
    ホーム技術発信DoRubywill_paginageを使ってみた

    will_paginageを使ってみた

    この記事はアピリッツの技術ブログ「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(総ページ数の取得)とかもできる模様。
    いろいろ試せます。