sorting by subsidiary class

Hi all,

My app contains categories, service and discounts.

A category has_many :services A service belongs_to :category and has_one discount A discount belongs_to :service

On each category show page I list all of the associated services, but would like to order them by some of the entries in the discount table.

i.e. in my categories controller

    @category = Category.find(params[:id])     @services=Service.find(:all, :order => "XXXXXXX", :conditions => ['category_id = ?',])

where XXXX relates to one of the columns in the discount table. The column gives the % discount available stored as an integer field.

Any ideas on best practice here,

I thought I could write a method into the Service.rb model file but although I can call the value easily I can't order by the entry.

  def reduction     return discount.percentage   end

All help appreciated.

Dan C

   @category = Category.find(params[:id])    @services=Service.find(:all, :order => "XXXXXXX", :conditions => ['category_id = ?',])

@category = Category.find(params[:id])! { |x, y| x.reduction <=> y.reduction }

i.e. in my categories controller

@category = Category\.find\(params\[:id\]\)
@services=Service\.find\(:all, :order =&gt; &quot;XXXXXXX&quot;, :conditions =&gt;

['category_id = ?',])

If you join the discounts table you can just order by discounts.percentage