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 and
- kaminari.
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 previous 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