Как отмечено в комментариях, наиболее интуитивно понятный способ решения этой проблемы состоит в том, чтобы, вероятно, иметь массив пользователей, где каждый пользователь представлен в своем хэше (что может быть тем, на что вы ссылались в своем вопросе).
users = [
{ name: "Joe", score: 90 },
{ name: "Mike", score: 80 },
{ name: "Steve", score: 100 }
]
sorted_users = users.sort_by { |user| user[:score] }.reverse
puts "Rank Name Score"
sorted_users.each_with_index do |user, index|
rank_str = (index + 1).to_s.ljust(7)
name_str = user[:name].ljust(10)
score_str = user[:score].to_s.rjust(5)
puts "#{rank_str}#{name_str}#{score_str}"
end
, который распечатает следующее
# Rank Name Score
# 1 Steve 100
# 2 Joe 90
# 3 Mike 80