I think this makes a lot of sense. I tried to do this for the old find_by_x 
dynamic finders a few years ago but was thwarted by the amount of refactoring 
it would require. Using association names instead of the underlying foreign key 
is more natural and keeps things at the right level of abstraction, and is 
especially helpful for polymorphic associations. If the new ARel-based query 
API enables this to be done without changing a bunch of other things, I'm all 
for it. 

--
Josh Susser


On Tuesday, August 7, 2012 at 8:23 AM, Peter Brown wrote:

> Hi,
> 
> Guillermo asked me to post this here for feedback: 
> https://github.com/rails/rails/pull/7273
> 
> The pull request has some examples and rationale for the change, but 
> basically it would let you specify the model name in queries when you'd 
> normally use a foreign key. 
> 
> These queries would then be equivalent:
> 
> Post.where(:author_id => author)
> Post.where(:author => author)
> 
> and so would these:
> 
> Author.where(:posts => {:author_id => author}).joins(:posts)
> Author.where(:posts => {:author => author}).joins(:posts)
> 
> TL;DR
> API is more consistent with other parts of ActiveRecord
> Works with polymorphic relationships
> Better for legacy schemas that don't follow Rails' foreign key conventions 
> (you don't need to remember column names)
> 
> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Ruby on Rails: Core" group.
> To view this discussion on the web visit 
> https://groups.google.com/d/msg/rubyonrails-core/-/lGc5FokBYLoJ.
> To post to this group, send email to [email protected] 
> (mailto:[email protected]).
> To unsubscribe from this group, send email to 
> [email protected] 
> (mailto:[email protected]).
> For more options, visit this group at 
> http://groups.google.com/group/rubyonrails-core?hl=en.

-- 
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