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.
