diff --git a/lib/jsonapi/processor.rb b/lib/jsonapi/processor.rb index b1c6dc3d8..c3b478832 100644 --- a/lib/jsonapi/processor.rb +++ b/lib/jsonapi/processor.rb @@ -160,7 +160,7 @@ def show_related_resources records = resource_klass.filter_records(filters, {}, related_resource_records) - record_count = records.count(:all) + record_count = resource_klass.count_records(records) end if (JSONAPI.configuration.top_level_meta_include_page_count && record_count) diff --git a/lib/jsonapi/resource.rb b/lib/jsonapi/resource.rb index 608d30a89..c85d35eaf 100644 --- a/lib/jsonapi/resource.rb +++ b/lib/jsonapi/resource.rb @@ -628,8 +628,13 @@ def sort_records(records, order_options, context = {}) apply_sort(records, order_options, context) end + # Assumes ActiveRecord's counting. Override if you need a different counting method + def count_records(records) + records.count(:all) + end + def find_count(filters, options = {}) - filter_records(filters, options).count(:all) + count_records(filter_records(filters, options)) end # Override this method if you have more complex requirements than this basic find method provides