It's a page where I list these UpdateRequests showing, amongst other
things, the name of the Contact for whom the UpdateRequest has been
created. And I'd like to be able to have that list of UpdateRequests
sorted on the Contact's last_name.
But, this is really also a general question about how to sort on (and
how to get at) the attributes of an associated object from a object
that joins objects (note that that's what an UpdateRequest does for me
here).
I'm not 100% sure that this will actually sort the records the way you
want, however. If it doesn't work, you'll probably need to build a
named scope on UpdateRequest that sorts by contact last_name.
This finally pushes me to learn more about :include, something I
havent looked at much in a couple years of Rails work <sheepish grin>
I'd use :joins instead of include here - you'll actually be loading
all those contact objects whenever you load that association, which
probably isn't what you want.
:joins will work as well - but with the additional gotcha that it (by
default) does an inner join, so UpdateRequests without an associated
contact won't get loaded if you use the :joins => :contact syntax.
Been bitten by this at least once myself...
Also, :include could be useful here anyway, as you're probably going
to want to display at least some of the fields from Contact with the
requests (else the sort will look really weird).