Mysql
 sql >> база данни >  >> RDS >> Mysql

Ruby sort_by за масиви, върнати от MySQL, дата, форматирана като низ

Елементите изглеждат вложени по-дълбоко, отколкото сте очаквали. Променете своя код на:

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

Обяснение:

Това, което виждате като резултат от p task :

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

Това означава, че това е масив от елементи. Обърнете внимание на ограждащите скоби [ ] . Така че това, което трябва да направите в този случай е task.first , което ще върне:

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

Оттам трябва да имате достъп до стойностите на елемента чрез ключ, както възнамерявате:

task.first[:date]



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL заявка за преброяване на броя пъти, когато определени стойности се появяват в множество редове

  2. Проследяване в реално време в google map

  3. Намерете конкретна колона в неизвестна таблица в база данни?

  4. mysql_query():как да проверите дали някои редове са актуализирани в случай на UPDATE SQL

  5. има ли алтернатива на използването на for цикъл за вмъкване на множество заявки