Как я могу сортировать коллекцию записей по дате начала и окончания даты? Посмотрев на STRF docs ближе всего я мог бы получить было сгруппировать по номеру неделиRuby group_by date каждые 7 дней
weeks = my_data.group_by{|x| x.created_at.strftime('%U %Y') }
{"34 2015"=>
[#<DoctorRecommendation:0x007fd663196ea0
created_at: Tue, 25 Aug 2015 22:29:44 UTC +00:00,
patient_profile_id: 104,],
"33 2015"=>
[#<DoctorRecommendation:0x007fd663194ce0
created_at: Thu, 20 Aug 2015 13:41:37 UTC +00:00,
patient_profile_id: 21,,
#<DoctorRecommendation:0x007fd66319f500
created_at: Tue, 18 Aug 2015 02:47:30 UTC +00:00,
patient_profile_id: 61,
#<DoctorRecommendation:0x007fd66319db38
created_at: Tue, 18 Aug 2015 02:47:29 UTC +00:00,
patient_profile_id: 85,
]
}
Я предпочел бы иметь ключи быть 8/10/2015 - 8/16/2015
и 8/17/2015 - 8/23/2015
Есть несколько проблем с этим подходом. Во-первых, я не смог преобразовать его обратно в нужную дату (попробовал Date.parse("34 2015")
), но получил ArgumentError: invalid date
. Вторая проблема с этим подходом заключается в том, что определенные недели будут опущены, если не будет записей.
8/10/2015 - 8/16/2015 и 8/17/2015 - 8/23/2015 FTFY –