I made a patch to allow eager loading to exclude specified columns on the eagerly-loaded models. If you have a model that you want to load for a specific reason – like, say, you have lots of users, and you want to grab all their posts but exclude the posts’ bodies – you can now specify that by going:
I found this useful in my application when I was trying to grab a huge amount of emails and didn’t want to include their bodies. Without body loading, the emails loaded in a a few milliseconds: with the bodies included they took lots longer.
Isn't this already supported syntax (which would load the :except
association for posts and the :body association for excepts)? Not
that I think having an association named :except is a good idea, but
it's something to consider.
Will now bomb out, where before it would assume that you want to include comments and then include except on comments, like you said. In making the patch I figured the amount of people who would be helped by the performance improvements probably outweighs the number of people who have associations named “except.” But hey, I could be wrong.
I read the Rails 3 Beta call email and I wanted to try to raise this ticket again to maybe get it a bit more visibility before the beta comes out. Anyone feel like commenting on this patch? I’ve found it helpful, anyway!
I don't believe this should be in core for a few reasons :
1) It's not needed very often
2) Difficult to make it work with eager loading. Your patch only deals
with preloading.
3) I'd prefer using a plugin like http://github.com/mcmire/ar_attr_lazy/