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 |'的错误方法。 –