will_paginate
will_paginate is a pagination library that integrates with Ruby on Rails, Sinatra, Merb, DataMapper and Sequel.
Installation:
``` ruby
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
``` ruby
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:
``` ruby
for the Post model
class Post self.per_page = 10 end
set per_page globally
WillPaginate.per_page = 10 ```
New in Active Record 3:
``` ruby
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.