module ArLazyPreload::Merger
ActiveRecord::Relation::Merger patch implementing merge functionality for lazy preloadable relations
Public Instance Methods
merge()
click to toggle source
Enhanced merge
implements merging lazy_preload_values
Calls superclass method
# File lib/ar_lazy_preload/active_record/merger.rb, line 8 def merge result = super if other.lazy_preload_values.any? if other.klass == relation.klass merge_lazy_preloads else reflect_and_merge_lazy_preloads end end result end
Private Instance Methods
merge_lazy_preloads()
click to toggle source
# File lib/ar_lazy_preload/active_record/merger.rb, line 24 def merge_lazy_preloads relation.lazy_preload!(*other.lazy_preload_values) end
reflect_and_merge_lazy_preloads()
click to toggle source
# File lib/ar_lazy_preload/active_record/merger.rb, line 28 def reflect_and_merge_lazy_preloads reflection = relation.klass.reflect_on_all_associations.find do |r| r.class_name == other.klass.name end return unless reflection relation.lazy_preload!(reflection.name => other.lazy_preload_values) end