18 lines
		
	
	
		
			457 B
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			18 lines
		
	
	
		
			457 B
		
	
	
	
		
			Ruby
		
	
	
	
# frozen_string_literal: true
 | 
						|
 | 
						|
module PreloadingConcern
 | 
						|
  extend ActiveSupport::Concern
 | 
						|
 | 
						|
  def preload_collection(scope, klass)
 | 
						|
    return scope unless klass.respond_to?(:preload_cacheable_associations)
 | 
						|
 | 
						|
    scope.to_a.tap do |records|
 | 
						|
      klass.preload_cacheable_associations(records)
 | 
						|
    end
 | 
						|
  end
 | 
						|
 | 
						|
  def preload_collection_paginated_by_id(scope, klass, limit, options)
 | 
						|
    preload_collection scope.to_a_paginated_by_id(limit, options), klass
 | 
						|
  end
 | 
						|
end
 |