@@ -311,9 +311,9 @@ def apply_includes(records, directives)
311311 records
312312 end
313313
314- def apply_pagination ( records , paginator )
314+ def apply_pagination ( records , paginator , order_options )
315315 if paginator
316- records = paginator . apply ( records )
316+ records = paginator . apply ( records , order_options )
317317 end
318318 records
319319 end
@@ -354,13 +354,15 @@ def apply_filters(records, filters)
354354 end
355355
356356 def filter_records ( filters , options )
357- sort_criteria = options . fetch ( :sort_criteria ) { [ ] }
358357 include_directives = options [ :include_directives ]
359358
360359 records = records ( options )
361360 records = apply_includes ( records , include_directives )
362- records = apply_filters ( records , filters )
363- apply_sort ( records , construct_order_options ( sort_criteria ) )
361+ apply_filters ( records , filters )
362+ end
363+
364+ def sort_records ( records , order_options )
365+ apply_sort ( records , order_options )
364366 end
365367
366368 def find_count ( filters , options = { } )
@@ -372,7 +374,12 @@ def find(filters, options = {})
372374 context = options [ :context ]
373375
374376 records = filter_records ( filters , options )
375- records = apply_pagination ( records , options [ :paginator ] )
377+
378+ sort_criteria = options . fetch ( :sort_criteria ) { [ ] }
379+ order_options = construct_order_options ( sort_criteria )
380+ records = sort_records ( records , order_options )
381+
382+ records = apply_pagination ( records , options [ :paginator ] , order_options )
376383
377384 resources = [ ]
378385 records . each do |model |
@@ -587,11 +594,13 @@ def _associate(klass, *attrs)
587594 paginator = options [ :paginator ]
588595
589596 resources = [ ]
597+
590598 if resource_class
591599 records = public_send ( associated_records_method_name )
592600 records = resource_class . apply_filters ( records , filters )
593- records = resource_class . apply_sort ( records , self . class . construct_order_options ( sort_criteria ) )
594- records = resource_class . apply_pagination ( records , paginator )
601+ order_options = self . class . construct_order_options ( sort_criteria )
602+ records = resource_class . apply_sort ( records , order_options )
603+ records = resource_class . apply_pagination ( records , paginator , order_options )
595604 records . each do |record |
596605 resources . push resource_class . new ( record , @context )
597606 end
0 commit comments