Basic Concepts
How To
Migrate WillPaginate/Kaminari
API
Pagy
Pagy::Backend
Pagy::Frontend
Pagy::Calendar
Pagy::Countless
Pagy::Console
Pagy::I18n
Javascript
Extras
Arel
Array
Bootstrap
Bulma
Calendar
Countless
Elasticsearch Rails
Foundation
Gearbox
Headers
I18n
Items
Overflow
Materialize
Meilisearch
Metadata
Navs
Searchkick
Semantic
Standalone
Support
Tailwind
Trim
UIkit
➡ Chat Support on Gitter ➡
Pagy comes with a growing number of optional extras, that add core, backend, frontend or special features to the regular core features.
Extra | Description | Links |
---|---|---|
arel |
Better performance of grouped ActiveRecord collections | arel.rb, documentation |
array |
Paginate arrays efficiently avoiding expensive array-wrapping and without overriding | array.rb, documentation |
bootstrap |
Add nav, nav_js and combo_nav_js helpers for the Bootstrap pagination component | bootstrap.rb, documentation |
bulma |
Add nav, nav_js and combo_nav_js helpers for the Bulma pagination component | bulma.rb, documentation |
calendar |
Add pagination filtering by calendar time unit (year, quarter, month, week, day) | calendar.rb, documentation |
countless |
Paginate without any count, saving one query per rendering | countless.rb, documentation |
elasticsearch_rails |
Paginate elasticsearch_rails gem results efficiently |
elasticsearch_rails.rb, documentation |
foundation |
Add nav, nav_js and combo_nav_js helpers for the Foundation pagination component | foundation.rb, documentation |
gearbox |
Automatically change the number of items per page depending on the page number | gearbox.rb, documentation |
headers |
Add RFC-8288 compliant http response headers (and other helpers) useful for API pagination | headers.rb, documentation |
i18n |
Use the I18n gem instead of the pagy implementation |
i18n.rb, documentation |
items |
Allow the client to request a custom number of items per page with a ready to use selector UI | items.rb, documentation |
materialize |
Add nav, nav_js and combo_nav_js helpers for the Materialize CSS pagination component | materialize.rb, documentation |
meilisearch |
Paginate Meilisearch results efficiently |
meilisearch.rb, documentation |
metadata |
Provides the pagination metadata to Javascript frameworks like Vue.js, react.js, etc. | metadata.rb, documentation |
navs |
Add nav_js and combo_nav_js javascript unstyled helpers | navs.rb, documentation |
overflow |
Allow for easy handling of overflowing pages | overflow.rb, documentation |
searchkick |
Paginate Searchkick::Results objects efficiently |
searchkick.rb, documentation |
semantic |
Add nav, nav_js and combo_nav_js helpers for the Semantic UI CSS pagination component | semantic.rb, documentation |
standalone |
Use pagy without any request object, nor Rack environment/gem, nor any defined params method, even in the irb/rails console without any app or config. |
standalone.rb, documentation |
support |
Extra support for features like: incremental, infinite, auto-scroll pagination | support.rb, documentation |
trim |
Remove the page=1 param from links |
trim.rb, documentation |
tailwind |
Extra styles for Tailwind CSS | documentation |
uikit |
Add nav, nav_js and combo_nav_js helpers for the UIkit pagination component | uikit.rb, documentation |
Extras are not loaded by default, so you should require them explicitly in your pagy.rb
initializer (see How to configure pagy):
require 'pagy/extras/bootstrap'
require 'pagy/extras/...'
Extras add features by defining their own *Extra
module that get prepended to other pagy classes or modules. This neatly separates the core code from the optional extras, leaving a trace in the ancestors
array to improve introspection and debugging info.
Notice: In previous Pagy versions extras were re-opening the Pagy
class and modules. That is good as long as you have just a few extras⦠which is not the case anymore.
A few extras require the pagy/extras/frontend_helpers file. It defines only a few methods used internally, so you donβt actually need to use them directly.
Notice: All the other added methods are documented in the respective extras doc.
A few frontend extras add helpers that use javascript, and they are clearly recognizable by the js
suffix:
pagy*_nav_js
pagy*_combo_nav_js
pagy_items_selector_js
See Javascript