Notes posted by scottwhiteRSS feed
I got hit with this on an upgrade. Had a reference to ApplicationController::Base in development.rb (prod as well) which caused this problem http://rails.lighthouseapp.com/projects/8994/tickets/1977
Fix was to remove the loading of ApplicationController::Base and put it in an initializer (where it should have been).
The above works great as long as you select the primary key of the owning assocations.
preload_associations calls a group_by on that object so if there is no primary key attributed filled out it will reduce the records to 1 object. ex: rows = foo.find(:all,:select=>“boo.id, foo.name, foo.age, count(DISTINCT foo.id)”, :group=>“foo.name,foo.age having count( DISTINCT foo.id) > 1”,:joins=>“INNER JOIN bar.foo on bar.foo_id = foo.id”)
rows.first.bar.name #=> sql call already made in preload rows.last.bar.name #=> just made another sql call to get bar
fix: :select=>“foo.id, boo.id, foo.name, foo.age, count(DISTINCT foo.id)”
now preload_associations will include all the ids found instead of just the 1st one.