Mislav Marohnić edited this page Jun 7, 2017 · 7 revisions

will_paginate documentation

This is the official home for will_paginate library; a collection of extensions for the database layer that enable paginated queries, and view helpers for popular frameworks that render pagination links. With proper combination of view helpers and CSS styling, the final result can look like this:

will_paginate sample rendering

To get started, see Installation instructions.

Usage examples

## perform a paginated query:
@posts = Post.paginate(:page => params[:page])

# or, use an explicit "per page" limit:
Post.paginate(:page => params[:page], :per_page => 30)

## render page links in the view:
<%= will_paginate @posts %>

And that's it! You're done. You just need to add some CSS styles to make those pagination links prettier.

You can customize the default "per_page" value:

# for the Post model
class Post
  self.per_page = 10

# set per_page globally
WillPaginate.per_page = 10

New in Active Record 3

# paginate in Active Record now returns a Relation
Post.where(:published => true).paginate(:page => params[:page]).order('id DESC')

# the new, shorter page() method
Post.order('created_at DESC').page(params[:page])

Usage in Sinatra

# classic sinatra app style
require "sinatra"
require "will_paginate"

# you can now use `will_paginate` helper in your views


require "sinatra/base"
require "will_paginate/view_helpers/sinatra"

class MyApp < Sinatra::Base
  register WillPaginate::Sinatra
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.