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)