如何逐行加入?

时间:2017-06-01 19:01:51

标签: ruby-on-rails chartkick

我在我的项目中使用了chartkick和gem“groupdate”。

<%= area_chart SugarLevel.group_by_minute(created_at).sum(:mmol) %>

我想继续从一个点到另一个点。我对groupdate做错了。如果某一分钟没有数据,则该行必须从上一点开始,并且必须在下一点结束。 enter image description here

它必须是无间隙的图形。像那样: enter image description here

1 个答案:

答案 0 :(得分:0)

gem中的方法“groupdate”group_by_something使用Hash来存储数据。例如:

 @hash = SugarLevel.group_by_minute(:created_at).sum(:mmol) # => {Thu, 01 Jun 2017 17:39:00 UTC +00:00=>#<BigDecimal:2add9a8,'0.77E1',18(18)>, Thu, 01 Jun 2017 17:40:00 UTC +00:00=>0, Thu, 01 Jun 2017 17:41:00 UTC +00:00=>0, Thu, 01 Jun 2017 17:42:00 UTC +00:00=>0, Thu, 01 Jun 2017 17:43:00 UTC +00:00=>0}

我们可以根据需要清除此哈希:

@hash.select{|k, v| v != 0} # Select all keys which do not consist 0

最后,我们可以把它放在一个观点:<%= area_chart @hash %>