Mysql
 sql >> Base de données >  >> RDS >> Mysql

Ruby sort_by pour les tableaux renvoyés par MySQL, date formatée en chaîne

Les éléments semblent être imbriqués plus profondément que prévu. Remplacez votre code par :

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

Explication :

Ce que vous voyez comme une sortie de p task :

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

Cela signifie qu'il s'agit d'un tableau d'éléments. Remarquez les accolades englobantes [ ] . Donc, ce que vous devez faire dans ce cas est task.first , qui renverra :

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

À partir de là, vous devriez pouvoir accéder aux valeurs de l'élément par une clé, comme vous l'aviez prévu :

task.first[:date]