From bf233c248dd9d5edbd303ed83c0ae5ab05bb1bba Mon Sep 17 00:00:00 2001 From: Denis Barushev Date: Wed, 7 May 2008 12:24:30 +0300 Subject: [PATCH] Fixed eager loading association for every STI subclass when it is declared in superclass. --- .../lib/active_record/association_preload.rb | 5 ++--- 1 files changed, 2 insertions(+), 3 deletions(-) diff --git a/activerecord/lib/active_record/association_preload.rb b/activerecord/lib/active_record/association_preload.rb index da4ebde..de29eff 100644 --- a/activerecord/lib/active_record/association_preload.rb +++ b/activerecord/lib/active_record/association_preload.rb @@ -34,9 +34,8 @@ module ActiveRecord reflection = reflections[association] raise ConfigurationError, "Association named '#{ association }' was not found; perhaps you misspelled it?" unless reflection - # Not all records have the same class, so group then preload. - records.group_by(&:class).each do |klass, records| - reflection = klass.reflections[association] + # Not all records have the same class, so group them by reflection then preload. + records.group_by {|record| record.class.reflections[association]}.each do |reflection, records| send("preload_#{reflection.macro}_association", records, reflection, preload_options) end end -- 1.5.4.5