Highcharts – Rails数组包含空日期条目

我正在使用Highcharts开发一个带有各种线图仪表板的Rails 3.1.1应用程序。 我在Railcast 223(highcharts)中实现了示例代码 – 一切都按预期工作。 但是在没有条目存在的日子里,数组会绘制一个0值 – 但我只是想看线图实际记录。

它不是Railscast的问题,因为它们每天都有多个Order条目。 它似乎是另一个用户(托马斯)发布的同一个问题……虽然他的代码在我的情况下不起作用。

Index view: $(function () { new Highcharts.Chart({ chart: { renderTo: 'orders_chart' }, title: { text: 'Orders by Day' }, xAxis: { type: 'datetime' }, yAxis: { title: { text: 'Dollars' } }, tooltip: { formatter: function () { return Highcharts.dateFormat("%B %e %Y", this.x) + ': ' + '$' + Highcharts.numberFormat(this.y, 2); } }, series: [{ pointInterval: , pointStart: , data:  }] }); }); class Order < ActiveRecord::Base def self.total_on(date) where("date(purchased_at) = ?",date).sum(:total_price) end end 

任何输入都会非常感激 – 对rails很新,并且已经找到了100种不起作用的方法! 谢谢!

如果您想要绘制任何内容但是仍然显示日期,则将任何零更改为javascript null 。 如果你不想绘制那些日子,那么你应该在输出之前从数组中拒绝它们。

所以:

 (3.weeks.ago.to_date..Date.today).map{|date| total=Order.total_on(date).to_f; total.zero? ? "null" : total }.inspect 

要么:

 (3.weeks.ago.to_date..Date.today).map{|date| Order.total_on(date).to_f}.reject(&:zero?).inspect