Mysql
 sql >> Database >  >> RDS >> Mysql

Ruby sort_by per gli array restituiti da MySQL, data formattata come stringa

Gli elementi sembrano essere nidificati più in profondità di quanto ti aspettassi. Modifica il tuo codice in:

# use '{ }' instead of 'do end' for a single-line blocks
tasksByDate = tasks.sort_by { |task| task.first[:date].to_date }

Spiegazione:

Quello che vedi come output di p task :

[#<User id: 10, login: "my.name", hashed_password: "", date: "2016-08-29">]

Significa che questa è una matrice di elementi. Notare le parentesi graffe [ ] . Quindi quello che devi fare in questo caso è task.first , che restituirà:

 #<User id: 10, login: "my.name", hashed_password: "", date: "2016-08-29">

Da lì dovresti essere in grado di accedere ai valori dell'elemento tramite una chiave, come intendevi:

task.first[:date]