sql >> Databasteknik >  >> RDS >> Mysql

Ruby sort_by för arrayer som returneras av MySQL, datumformaterad som sträng

Elementen verkar vara kapslade djupare än du förväntade dig att de skulle vara. Ändra din kod till:

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

Förklaring:

Vad du ser som en utdata från p task :

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

Det betyder att detta är en array av element. Lägg märke till de omslutande klammerparenteserna [ ] . Så vad du måste göra i det här fallet är task.first , som returnerar:

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

Därifrån bör du kunna komma åt elementets värden med en nyckel, som du tänkt dig:

task.first[:date]



  1. MySQL skapa vy som sammanfogar två tabeller

  2. En Big Data Quandary:Hårdvara eller programvara ... Apparater ...

  3. Hur skickar man SSIS-variabler i ODBC SQLCommand-uttryck?

  4. Förstå händelseförlust med utökade händelser