Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Ruby sort_by para arrays retornados pelo MySQL, data formatada como string


Os elementos parecem estar aninhados mais profundamente do que você esperava. Altere o seu código para:
# use '{ }' instead of 'do end' for a single-line blocks
tasksByDate = tasks.sort_by { |task| task.first[:date].to_date }

Explicação:

O que você vê como uma saída de p task :
[#<User id: 10, login: "my.name", hashed_password: "", date: "2016-08-29">]

Isso significa que este é um Array de elementos. Observe as chaves de fechamento [ ] . Então o que você tem que fazer neste caso é task.first , que retornará:
 #<User id: 10, login: "my.name", hashed_password: "", date: "2016-08-29">

A partir daí, você poderá acessar os valores do elemento por uma chave, como pretendia:
task.first[:date]