A Rails pagination responder with link header support.
Add this line to your application's Gemfile:
gem 'paginate-responder'
And then execute:
$ bundle
Or install it yourself as:
$ gem install paginate-responder
You will also need a pagination gem. PaginateResponder
comes with adapters for
- will_paginate,
- kaminari, and
- pagy.
It is recommended to use only one pagination gem at once.
Add Responders::PaginateResponder
to your responder chain:
class AppResponder < Responder
include Responders::PaginateResponder
end
class MyController < ApplicationController
self.responder = AppResponder
end
Or use it with plataformatec/responders:
class MyController < ApplicationController
responders Responders::PaginateResponder
end
PaginateResponder
will add the following link headers to
non HTML responses:
first
First page's URL.last
Last page's URL.next
Next page's URL.prev
Previous page's URL.
next
and prev
page links will not be added if current
page is first
or last
page.
Also a X-Total-Pages
header will be added with the total
number of pages if available and a X-Total-Count
header
with the total number of items. This allows applications
to display a progress bar or similar while fetching pages.
You can override the page detection by creating a method
page
in your controller that returns the page index as
a fixnum:
class ApplicationController
def page
params[:seite].to_i # seite means page in German
end
end
Same goes for per_page
and max_per_page
:
class ApplicationController
def per_page
10
end
def max_per_page
25
end
end
- Documentation ** Controller methods
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Add tests for your feature.
- Add your feature.
- Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request
Copyright (c) 2013, Jan Graichen