Classifique a matriz de objetos por vários campos em Ruby

Depois de pesquisar nas interwebs, encontrei uma solução para usar sort_byquando você precisar classificar por campos múltiplos.

Um exemplo

Eu tenho um modelo Person com 2 campos: first_name e last_name .
Eu quero classificar uma matriz preenchida com modelos de pessoa por último_nome e depois por primeiro_nome .

Bem, não é tão difícil. Apenas retorne um array no sort_bybloco com os campos que você deseja classificar na ordem em que deseja classificá-los.

people.sort_by do |person|
[person.last_name, person.first_name]
end