Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Pagination library for Rails, Sinatra, Merb, DataMapper, and more
Ruby Groff Shell
Latest commit 1a89440 @mislav Fix link to sample pagination styles
Fixes #455 [ci skip]
Failed to load latest commit information.
lib Fix count method to work with select statement.
script Fix `script/test_all` to exit with nonzero status on failures
spec Boxen compatibility for database.yml
.gitignore fix view specs with Rails 3.0.0.beta3
.rspec setup continuous integration testing with Travis-CI
.travis.yml Test against Rails 4.1
Gemfile Bump Rails in tests to 4.0.5
Gemfile.lock Bump Rails in tests to 4.0.5
Gemfile.rails-edge Bump mysql2 gem in edge Rails
Gemfile.rails-edge.lock Bump mysql2 gem in edge Rails
Gemfile.rails3.0 Use "activerecord-mysql2-adapter" in Rails 3.0 tests
Gemfile.rails3.0.lock Use "activerecord-mysql2-adapter" in Rails 3.0 tests
Gemfile.rails3.1 replace Rake + ruby CI runner with one in bash
Gemfile.rails3.1.lock test against Rails 4.0.0.rc2 and Rails 4.1 (edge)
Gemfile.rails3.2 test against Rails 4.0.0.rc2 and Rails 4.1 (edge)
Gemfile.rails3.2.lock test against Rails 4.0.0.rc2 and Rails 4.1 (edge)
Gemfile.rails4.1 Test against Rails 4.1.2
Gemfile.rails4.1.lock Test against Rails 4.1.2
LICENSE Total rdoc love. Point out that this is framework-agnostic now Fix link to sample pagination styles
init.rb mix in Active Record/Action View directly on `require`
will_paginate.gemspec add license information to 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.6'

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.