Rails: order using a has_many/belongs_to relationship

activerecord, ruby-on-rails

Solution

You need to join the related table to the request.

@result = DogTag.find(:all, :joins => :dog, :order => 'dogs.name')

Note that `dogs` is plural in the `:order` statement.

Problem

I was wondering if it was possible to use the find method to order the results based on a class's has_many relationship with another class. e.g. ``` # has the columns id, name class Dog < ActiveRecord::Base has_many :dog_tags end # has the columns id, color, dog_id class DogTags < ActiveRecord::Base belongs_to :dog end ``` and I would like to do something like this: ``` @result = DogTag.find(:all, :order => dog.name) ``` thank you.

Original source