De elementen lijken dieper genest dan je had verwacht. Verander uw code in:
# use '{ }' instead of 'do end' for a single-line blocks
tasksByDate = tasks.sort_by { |task| task.first[:date].to_date }
Uitleg:
Wat je ziet als een uitvoer van p task
:
[#<User id: 10, login: "my.name", hashed_password: "", date: "2016-08-29">]
Het betekent dat dit een array van elementen is. Let op de omsluitende accolades [ ]
. Dus wat je in dit geval moet doen is task.first
, die zal terugkeren:
#<User id: 10, login: "my.name", hashed_password: "", date: "2016-08-29">
Van daaruit zou je met een sleutel toegang moeten hebben tot de waarden van het element, zoals je bedoeld had:
task.first[:date]