class PolymorphicPreloader
Constants
- VERSION
Attributes
association_name[RW]
grouped_objects[RW]
Public Class Methods
new(objects, association_name)
click to toggle source
# File lib/polymorphic_preloader.rb, line 6 def initialize(objects, association_name) self.association_name = association_name self.grouped_objects = objects.group_by { |object| object.send("#{association_name}_type") } end
Public Instance Methods
preload!(associations)
click to toggle source
# File lib/polymorphic_preloader.rb, line 11 def preload!(associations) grouped_objects.each_pair do |object_type, objects_with_same_association| target_associations = associations[object_type.to_s.underscore.to_sym] if target_associations.present? preloader.preload objects_with_same_association, association_name => target_associations end end end
Private Instance Methods
preloader()
click to toggle source
# File lib/polymorphic_preloader.rb, line 23 def preloader @preloader ||= ActiveRecord::Associations::Preloader.new end