Hi. I’m trying to do something that should be a fairly common pattern,
but I’m currently not sure how.
BACKGROUND:
model Family has_one Father. also, Family has field “country_of_origin”
model Father has a number of fields, such as first_name, age, etc.
It’s easy to sort based on families’ fields:
sorted_families = Family.find(:all, :order => ‘country_of_origin’)
But, how do I sort based on the fields of the child? For example, how
do I sort families based on the first name of the associated “father”
field? I.e.,
sorted_families = Family.find(:all, :order => ‘father.first_name’)
clearly this doesn’t work… but you probably understand what I’m
trying to do. If I can’t do this directly in Rails, what’s the cleanest
direct SQL command that will achieve this? Perhaps subqueries/nested
queries will do the trick.
As a related question, how would I sort based on the count of a child
association? For example, assume an Order has_many LineItems; how do I
sort orders based on the count of the associated number of line items?
Thanks in advance for your help!
Mark