Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Pagination library for Rails 3, Sinatra, Merb, DataMapper, and more. Fork with offset option.

This branch is 3 commits ahead, 73 commits behind mislav:master

Failed to load latest commit information.
lib Merge remote-tracking branch 'upstream/master'
spec provide SQL order in tests
.gitignore fix view specs with Rails 3.0.0.beta3
.rspec setup continuous integration testing with Travis-CI
.travis.yml test against Rails 3.2.0.rc1
Gemfile test against Rails 3.2.1
Gemfile.lock test against Rails 3.2.1
Gemfile.rails3.0 Travis CI: don't try to test mysql2 adapter on Rails 3.0
Gemfile.rails3.0.lock test against Rails 3.0.10 & 3.1.0
Gemfile.rails3.1 test against Rails 3.2.0.rc1
Gemfile.rails3.1.lock test against Rails 3.2.0.rc1
LICENSE Total rdoc love. Point out that this is framework-agnostic now
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.