I’m trying to order a find through a has_many association. I have a
model called SalesOrder. Each sales order has things like amount,
description, etc. I use the following to get the Sales Orders:
@sales_orders = SalesOrder.find(:all)
And I display them with:
The problem is that this list is not in the order that I need it to
be. I can order it by any column in the sales_orders table, but I
need to order it by latest_history.route.name I don’t know how to
order a query based on another table’s column. Is this even
possible? Or is there another way to accomplish the same result? My
model definitions are below:
class SalesOrder < ActiveRecord::Base
has_many :histories
has_one :latest_history,
:class_name => “History”,
:order => “id desc”
end
class History < ActiveRecord::Base
belongs_to :route
belongs_to :sales_order
end
class Route < ActiveRecord::Base
has_many :histories
has_and_belongs_to_many :users
end
Thanks!