Skip to content

HTTPS clone URL

Subversion checkout URL

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

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
README.md
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

README.md

will_paginate

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

Installation:

## 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
end

# 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.page(params[: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.