named_scopeによるPagination
を行うためのGemを作りました。
通常はwill_paginateを利用するほうがいいと思いますが、
:joinsを含む複雑なnamed_scopeを介してpaginationを行いたい場合には、
利用すると便利かもしれません。

pagination_scope

使い方

まず、モデルクラスの中でincludeします。

rails>>
class Post
include PaginationScope
end
<<--

これによって、Postクラスにpaginateというnamed_scopeが作成されます。

続いて、Paginationを利用したいコントローラのアクションメソッド内で、

rails>>
class PostsController < ApplicationController
def index
@posts = Post.not_deleted.paginate(params[:page], 10)
<<--

のようにScopeを取得します。

続いて、Viewで以下のようにPagination用HTMLを生成します。

html>>
<%= paginate @posts %>
<<--

paginateメソッドは PaginationScope によって導入されるViewヘルパーです。

posted by genki genki on Sat 16 Aug 2008 at 23:14 with 0 comments