Classificando uma matriz com base em um atributo que pode ser nulo em alguns elementos
Eu tenho uma matriz de objetos
[<#a star=1 val=1>, <#a star=nil val=3> , <#a star=2 val=2>]
Eu preciso que o array seja classificado por tempo e depois por val
[ <#a star=2 val=2>, <#a star=1 val=1>, <#a star=nil val=3> ]
mas usar o sort_by gera um erro porque o tempo é nulo.
Estou usando uma maneira feia de classificar agora, mas tenho certeza de que há uma boa maneira de fazer isso
starred=[]
@answers.each {|a| (starred << a) if a.starred }
@answers=@answers-starred
starred=starred.sort_by {|a| a.starred }.reverse
@answers=starred+@answers