Насколько я понимаю, вы хотите сначала упорядочить по возрасту, а затем, если несколько записей имеют одинаковый возраст, упорядочить это подмножество по имени.
Это работает для меня
people = [
["bob", 15, "male"],
["alice", 25, "female"],
["bob", 56, "male"],
["dave", 45, "male"],
["alice", 56, "female"],
["adam", 15, "male"]
]
people.sort{|a,b| (a[1] <=> b[1]) == 0 ? (a[0] <=> b[0]) : (a[1] <=> b[1]) }
# The sorted array is
[["adam", 15, "male"],
["bob", 15, "male"],
["alice", 25, "female"],
["dave", 45, "male"],
["alice", 56, "female"],
["bob", 56, "male"]]
То, что это делает, сравнивает сначала по возрасту, а если возраст совпадает (<=> возвращается 0), то сравнивает имя.