Hey all,

I'd really appreciate some eyes on 
https://rails.lighthouseapp.com/projects/8994-ruby-on-rails/tickets/5845-activerecord-3-eager-loading-fail#ticket-5845-19.
 There's a small issue in Rails 3 eager loading, and this ticket has an 
accompanying patch.

Sssociations that show up twice in a Relation chain like:

  Article.includes(:comments).includes(:comments => :moderations)

will show up twice in the JoinDependency's join_parts but only once in the 
query that gets run. This wreaks all kinds of fun havoc with the select 
statement that gets used in construct_relation_for_association_find, since it 
will try to select from both copies of the table.

One solution (the one I implemented in the patch) is to ensure that the 
JoinDependency only joins each association once. This seems to be in keeping 
with the intended functionality, based on includes_values being "uniq"ed 
elsewhere. Naturally, a uniq won't catch a situation as described above, since 
includes_values contains a symbol, :comments, and a hash, {:comments => 
:moderations}.

Thanks in advance!

-- 
Ernie Miller
http://metautonomo.us
http://github.com/ernie
http://twitter.com/erniemiller

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Core" group.
To post to this group, send email to rubyonrails-c...@googlegroups.com.
To unsubscribe from this group, send email to 
rubyonrails-core+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-core?hl=en.

Reply via email to