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]