我正在尝试关注这个Railscast并为我的 Inquiry 模型创建一个 morris.js 折线图。
我已经将使用的计数分组date_trunc
为几个月,但现在我不太确定如何让 X 轴迭代几个月(例如 2012 年 6 月、2013 年 7 月),而不是像 railscasts 笔记中那样按日期。
我在这里尝试了 range#step 方法,但现在图表只显示一个日期(2012-07-01),没有计数,没有别的。从范围变量中注释掉.step(1.month)
方法,图形工作正常,但 x 轴按日期迭代。
class Enquiry < ActiveRecord::Base
def self.chart_data(start = 1.year.ago)
total_count = total_count_by_month(start)
start = start.to_date.beginning_of_month
today = Date.today.beginning_of_month
range = (start..today).step(1.month)
range.map do |month|
{
created_at: month,
total_enquiries: total_count[] || 0
}
end
end
def self.total_count_by_month(start)
enquiries = unscoped.where(created_at: start.beginning_of_month..Time.now)
enquiries = enquiries.group("date_trunc('month', created_at)")
enquiries = enquiries.select("date_trunc('month', created_at) as created_at, count(*) as count")
enquiries.each_with_object({}) do |enquiry, counts|
counts[enquiry.created_at.to_date] = enquiry.count
end
end
end
如何让图表的 x 轴按月(2013 年 6 月、2013 年 7 月 ....)而不是按日期进行迭代?