Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Pagination library for Rails, Sinatra, Merb, DataMapper, and more
Ruby Groff Shell
Fetching latest commit...
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
lib release v3.0.4
spec fix `last` for paginated AR 3.0 Relation
.gitignore fix view specs with Rails 3.0.0.beta3
.rspec setup continuous integration testing with Travis-CI
Gemfile test against Rails 3.2.1
Gemfile.rails-edge bump Rails versions
Gemfile.rails-edge.lock bump Rails versions
Gemfile.rails3.0 bump Rails versions
Gemfile.rails3.0.lock bump Rails versions
Gemfile.rails3.1 test against Rails 3.2.0.rc1
Gemfile.rails3.1.lock bump Rails versions
LICENSE Total rdoc love. Point out that this is framework-agnostic now update Gemfile install instructions
Rakefile Travis CI: don't try to test mysql2 adapter on Rails 3.0
init.rb mix in Active Record/Action View directly on `require`
will_paginate.gemspec improve cross-platform git check in gemspec


will_paginate is a pagination library that integrates with Ruby on Rails, Sinatra, Merb, DataMapper and Sequel.


## Gemfile for Rails 3, Sinatra, and Merb
gem 'will_paginate', '~> 3.0'

See installation instructions on the wiki for more info.

Basic will_paginate use

## 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[:page]).order('created_at DESC')

See the wiki for more documentation. Ask on the group if you have usage questions. Report bugs on GitHub.

Happy paginating.

Something went wrong with that request. Please try again.