I just found this ticket because I noticed the same issue.

http://dev.rubyonrails.org/ticket/6251

The official response was that it's not a bug because when you use
:joins you are "riding close to the metal".  But I'm at a loss as to
figure out why this behavior even needs to exist.

Every table (except HABTM links) in a typical Rails app is going to
have an id column, so that means any JOIN by default is going to be
clobbering ids.  Most of the useful ad-hoc attributes that you would
want to add to an query would have to be specified in the :select
option anyway... how often do you just want to glom on all the
attributes of some other table directly?

A default of SELECT table_name.* in the presence of a :joins option
just seems to make sense all around.  Is there some benefit to always
using SELECT * that warrants using it as the default even when it
opens the door for such dangerous and unexpected behavior?

At the very least the documentation for :joins should say "always
specify :select or else..."
-- 
Gabe da Silveira
http://darwinweb.net

--~--~---------~--~----~------------~-------~--~----~
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 [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-core?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to