ruby on rails - sort_by con Boolean in Rails



ruby-on-rails sorting (3)

È possibile utilizzare la partizione e quindi appiattire i risultati:

partition{|v| v == true}.flatten

https://src-bin.com

So che boolean in Ruby sono classi. Ma dal punto di vista pratico, c'è un modo per ordinare un array per booleano (cioè, con tutti gli elementi con il vero valore prima)?

Grazie.


Answer #1

Dato che ci sono un paio di modi diversi qui rappresentati, sono andato avanti e li ho confrontati per vedere quale è il più veloce, ordinando 27.000 elementi sulla base di un attributo booleano:

Rehearsal ---------------------------------------------
sort_by     0.070000   0.000000   0.070000 (  0.075203)
partition   0.110000   0.000000   0.110000 (  0.114667)
order       0.000000   0.000000   0.000000 (  0.000046)
------------------------------------ total: 0.180000sec

            user     system      total        real
sort_by     0.010000   0.000000   0.010000 (  0.016611)
partition   0.110000   0.000000   0.110000 (  0.111384)
order       0.000000   0.000000   0.000000 (  0.000047)

Quindi sì, mantenere le cose sul lato SQL rende sicuramente le cose più veloci.






boolean