Sha256: 5ca4f384014ba8db8d3652f2433544b8bc24a573830ab940bc22d503b8b377b0
Contents?: true
Size: 893 Bytes
Versions: 1
Compression:
Stored size: 893 Bytes
Contents
module EdgeRider module PreloadAssociations module PreloadAssociationsInstanceMethod def preload_associations(*args) self.class.preload_associations([self], *args) end end def preload_associations(*args) preloader = ActiveRecord::Associations::Preloader if preloader.method_defined?(:run) # Rails 3.2 / Rails 4 preloader.new(*args).run elsif preloader.method_defined?(:preload) # Rails 5 to Rails 6.1 preloader.new.preload(*args) else # Rails 7+ records = args.first associations = args.second options = args[2] || {} preloader.new(records: records, associations: associations, **options).call end end end end ActiveSupport.on_load :active_record do extend(EdgeRider::PreloadAssociations) include(EdgeRider::PreloadAssociations::PreloadAssociationsInstanceMethod) end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
edge_rider-2.3.1 | lib/edge_rider/preload_associations.rb |