0
我從我的模型中獲取一些數據並使用.count
,因此我得到了一個哈希範圍。我如何從哈希範圍中獲取缺失的日期
where(:created_at => start_date.beginning_of_day..Time.zone.now.end_of_day).
group("date(applicants.created_at)").count
輸出看起來是這樣的:
{"2015-10-06"=>1, "2015-07-09"=>2, "2015-07-13"=>3, "2015-07-14"=>2, "2015-08-14"=>3, "2015-08-27"=>1}
的問題是,我現在需要填寫的日期和範圍之間的所有失蹤日期的0值。然而,它是一個散列,我努力搜索數據。
到目前爲止,我沒有找到範圍內的日期;永遠。
def dates_chart_series(orders, start_date, end_date)
orders_by_day = orders
.where(:created_at => start_date.beginning_of_day..Time.zone.now.end_of_day)
.group("date(applicants.created_at)")
.count
puts orders_by_day
(start_date.to_date..end_date.to_date).map do |date|
puts orders_by_day.select { |key, value| key == date }
puts date
end.inspect
end
上述代碼取自RailsCast,其中返回一個對象(或對象數組)。不是哈希。我試圖用.select
來適應它,但我沒有太多的運氣。
任何幫助,將不勝感激。
謝謝!雖然每個對象似乎都不起作用,但我已經以: hash = Hash.new (start_date.to_date..end_date.to_date).each do | date | hash [date] = orders_by_day.fetch(date.to_s,0) end –
很酷啊,像往常一樣,我得到了'| hash,date |'的錯誤方法。 –