I tienen una matriz de objetosOrdenación de un conjunto basado en un atributo que puede ser nula en algunos elementos
[<#a star=1 val=1>, <#a star=nil val=3> , <#a star=2 val=2>]
necesito la matriz a ser ordenados por el tiempo, a continuación, por val
[ <#a star=2 val=2>, <#a star=1 val=1>, <#a star=nil val=3> ]
pero al usar sort_by arroja un error porque el tiempo es nulo.
estoy usando una manera fea para ordenar este momento, pero estoy seguro de que es una buena manera de hacerlo
starred=[]
@answers.each {|a| (starred << a) if a.starred }
@[email protected]
starred=starred.sort_by {|a| a.starred }.reverse
@[email protected]
Gracias @ Amin-ariana, su solución funcionó para mí y creo que es más fácil de leer. – monteirobrena
Esto no se comporta como el código inicial de OP para valores negativos como '-5' – Nakilon