Die Elemente scheinen tiefer verschachtelt zu sein, als Sie es erwartet haben. Ändern Sie Ihren Code in:
# use '{ }' instead of 'do end' for a single-line blocks
tasksByDate = tasks.sort_by { |task| task.first[:date].to_date }
Erklärung:
Was Sie als Ausgabe von p task
sehen :
[#<User id: 10, login: "my.name", hashed_password: "", date: "2016-08-29">]
Dies bedeutet, dass dies ein Array von Elementen ist. Beachten Sie die einschließenden Klammern [ ]
. Was Sie also in diesem Fall tun müssen, ist task.first
, was zurückgibt:
#<User id: 10, login: "my.name", hashed_password: "", date: "2016-08-29">
Von dort aus sollten Sie wie beabsichtigt über einen Schlüssel auf die Werte des Elements zugreifen können:
task.first[:date]