class Priloo::Preloaders::ArAssociationPreloader
This class implements preloading for ActiveRecord associations
Attributes
ar_class[R]
name[R]
Public Class Methods
new(ar_class, name)
click to toggle source
Calls superclass method
# File lib/priloo/preloaders/ar_association_preloader.rb, line 9 def initialize(ar_class, name) super([self.class, ar_class, name]) @name = name @ar_class = ar_class end
Public Instance Methods
extract(target)
click to toggle source
# File lib/priloo/preloaders/ar_association_preloader.rb, line 20 def extract(target) target.send(name) end
injected?(target)
click to toggle source
# File lib/priloo/preloaders/ar_association_preloader.rb, line 16 def injected?(target) target.association_cached?(name) end
preload(ar_list)
click to toggle source
# File lib/priloo/preloaders/ar_association_preloader.rb, line 24 def preload(ar_list) # Rails does not provide any way to preload an association without immediately # storing the result in the instances. ActiveRecord::Associations::Preloader.new.preload(ar_list.map(&:_preloadable_target), name) ar_list.map(&name) end