Skip to content

Strict None Paginator

Benjamin Fleischer edited this page Jun 10, 2019 · 1 revision

Define a strict_none paginator. Nothing when offset > 0

Avoids possibly infinite pagination bugs

JSONAPI.configure do |config| config.default_paginator = :offset # NOTE: If we're not going to show the number, be sure # to use the paginator :strict_none config.top_level_links_include_pagination = false end

app/models/strict_none_paginator.rb

# frozen_string_literal: true # Usage in resource: # paginator :strict_none # require 'jsonapi/paginator' class StrictNonePaginator < OffsetPaginator # attr_reader :limit, :offset def self.requires_record_count false end def apply(relation, _order_options) if @offset > 0 relation.respond_to?(:none, true) ? relation.none : [] else relation end end end
Clone this wiki locally