【发布时间】:2015-10-06 14:49:11
【问题描述】:
我从我的模型中获取一些数据并使用.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 对其进行调整,但运气不佳。
任何帮助将不胜感激。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4 rails-activerecord