Cleaning up a UGLY method.

I've been playing with a horrid method that I am using to sort my Projects by the average importance of their tasks. it hits the database quite a bit and is very ugly... does anyone have any suggestions? rails is still very new to me.

here is my method.

   def self.list_by_priority      priority = [ 5,4,3,2,1 ]      sorted = Array.new      priority.each do | current_priority |        find(:all).each do |project|           sorted << project if project.tasks.average(:priority) >= current_priority && sorted.include?(project) == false        end      end      sorted    end

How about:

class << self    def list_by_priority      find(:all, :include => :tasks).sort_by { |project| project.tasks.average(:priority) }    end end