class Program < ActiveRecord::Base has_many :patches, :order => "created_at DESC" has_many :applied_patches, :order => "applied_at DESC", :class_name => 'Patch', :conditions => Patch::APPLIED_CONDITION has_many :unapplied_patches, :order => "created_at DESC", :class_name => 'Patch', :conditions => Patch::UNAPPLIED_CONDITION # Class methods class < "#{columns}, COUNT(patches.id) AS num_patches", :joins => "JOIN patches ON programs.id = patches.program_id", :group => columns, :order => "num_patches DESC"}.merge(user_options) Program.find(:all, options) end end end