class DataTables::ActiveModelSerializers::Adapter::Pagination

Attributes

collection[R]

Public Class Methods

new(serializer) click to toggle source
# File lib/data_tables/active_model_serializers/adapter/pagination.rb, line 8
def initialize(serializer)
  @collection = serializer.object
end

Public Instance Methods

as_h() click to toggle source
# File lib/data_tables/active_model_serializers/adapter/pagination.rb, line 12
def as_h
  {
    recordsTotal: records_total,
    recordsFiltered: records_filtered
  }
end

Protected Instance Methods

records_filtered() click to toggle source
# File lib/data_tables/active_model_serializers/adapter/pagination.rb, line 21
def records_filtered
  @records_filtered ||= get_records_filtered
end
records_total() click to toggle source
# File lib/data_tables/active_model_serializers/adapter/pagination.rb, line 25
def records_total
  @records_total ||= get_records_total
end

Private Instance Methods

get_records_filtered() click to toggle source
# File lib/data_tables/active_model_serializers/adapter/pagination.rb, line 31
def get_records_filtered
  to_filter = @collection.unscope(:limit, :offset)
  if !to_filter.respond_to?(:count_estimate) || records_total < 1_000_000
    to_filter.count(@collection.model.primary_key).to_i
  else
    to_filter.count_estimate.to_i
  end
end
get_records_total() click to toggle source
# File lib/data_tables/active_model_serializers/adapter/pagination.rb, line 40
def get_records_total
  count = @collection.model.quick_count
  if count < 1_000_000
    count = @collection.model.all.count(@collection.model.primary_key).to_i
  end

  count
end