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