Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Clone this wiki locally
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:
To get started, see Installation instructions.
## 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.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 end