Ich habe diese Anfrage:Rails 5: Gruppe Datetime in Hash Jahr, Monat, Tag
dates = MyModel.pluck("distinct date(datetime_column)")
Hash[dates.group_by(&:year).map{|y, items| [y, items.group_by{|d| d.month}]}]
, die unterschiedlichen Termine zu finden und gibt mir dann diesen Array:
=> {2017=>{12=>[Tue, 12 Dec 2017], 1=>[Sun, 01 Jan 2017]},
2016=>{11=>[Sun, 20 Nov 2016], 12=>[Sat, 24 Dec 2016, Mon, 12 Dec 2016, Fri, 30 Dec 2016]}}
Wie kann ich 3. Ebene hinzufügen, um Hash zu haben, wo es bestimmte Tage unter jedem Monat gibt? Danke für jede Hilfe!
aktualisieren
Wenn jemand bestellt Ergebnis braucht, versuchen Sie dies für "dates" Teil:
dates = MyModel.order(:datetime_column).distinct.pluck(:datetime_column)
Für eine bessere Leistung, dies zu nutzen versuchen:
dates = MyModel.order("date_trunc('day', datetime_column) DESC")
.distinct.pluck("date_trunc('day', datetime_column)")
Hier ist schön blog post on using datetrunc.
'verschiedene Datum (datetime_column)' - es gibt ein Date-Objekte sind (nicht Zeit) – Ilya
@Ilya Also? Beide Objekte antworten auf "Jahr", "Monat" und "Tag". Auf diese Weise kann ich überprüfen, ob mein Code funktioniert, und übrigens, dass Ihr Code nicht funktioniert. –
Danke! Was sagst du über @Inpego vorgeschlagene Lösung? – matiss