Pagers
Scope based pagination engine for rails.
Why
I did this gem to:
- Simplify code by keep close integration with rails.
- Have most common used settings set out of the box.
- Create a compatible pagination for indexes gem.
Install
Put this line in your Gemfile:
gem 'pagers'
Then bundle:
$ bundle
Configuration
Generate the configuration file:
$ bundler exec rails g pagers:install
Set the global settings:
Pagers.configure do |config|
config.length = 20
config.padding = 0
config.links = 5
end
Usage
Relation
Call the page scope from your models:
@products = Product.page(1)
You can override global options by passing a hash:
@products = Product.page(1, length: 10, padding: 4)
Views
You can use paginate helper to generate a pager html:
<%= paginate @collection %>
SEO
If you want to remove the page query parameter, add an optional parameter to the route:
get 'search/:query/(:page)' => 'products#search'
That will produce links like this:
search/sample
search/sample/2
search/sample/3
Credits
This gem is maintained and funded by mmontossi.
License
It is free software, and may be redistributed under the terms specified in the MIT-LICENSE file.