Depending on whether rating is an attribute or not, one of these should work:
@temp = Articles.find(:all, :order => 'rating DESC', :limit => 10)
Or (assuming rating is numeric, note the negation):
@temp = Articles.find(:all).sort_by {|article| - article.rating }.first(10)
And you aren't getting a 'hash' you're getting an Array from your Articles.find call.
-Rob
Rob Biedenharn http://agileconsultingllc.com Rob@AgileConsultingLLC.com