Scope based pagination engine for rails.
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 indexers gem.
Put this line in your Gemfile:
gem 'pagers'
Then bundle:
$ bundle
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
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)
You can use paginate helper to generate a pager html:
<%= paginate @collection %>
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
Any issue, pull request, comment of any kind is more than welcome!
I will mainly ensure compatibility to Rails, AWS, PostgreSQL, Redis, Elasticsearch and FreeBSD.
This gem is maintained and funded by museways.
It is free software, and may be redistributed under the terms specified in the MIT-LICENSE file.