2017-03-03 63 views
1

我试图使用从API检索的数据绘制简单的line_chart,但文档示例仅使用常规ActiveRecord模型中的数据,而且我正在挣扎很多。由于我不是在模型上操作,我不能使用文档中解释的任何方法(组等)Chartkick/Rails:使用来自对象而不是模型的数据构建line_chart

我有一个REST API的调用,我得到了一个具有两个属性的对象(有一个更多,但这两个是我感兴趣的这一点),ORDER_CODE和LEAD_TIME。我只想显示line_chart,其中X轴的order_codes和Y轴的lead_times。

我的控制器代码就是这样,我使用Dish将Json.parse中的散列转换为对象。该API调用正在工作,并且正在我的应用中成功使用数据。

leadtimes = Dish(JSON.parse RestClient.get(ENV['API'], params: { PART: @order.PART }))

并在视图:

<%= line_chart @data%> 

我是想,但我只是有一个空的图表:

@data = leadtimes.map do |value| 
    [ 
    order_code: value.ORDER_CODE, lead_time: value.LEAD_TIME 
    ] 
end 

我从API样子的JSON这个:

[{"ORDER_CODE"=>519805, "PART"=>"00049", "LEAD_TIME"=>29, "DATE"=>"2015-03-03T00:00:00"}, {"ORDER_CODE"=>517297, "PART"=>"00149", "LEAD_TIME"=>54, "DATE"=>"2014-11-26T00:00:00"}] 

回答

0

我最终通过使用collect方法来处理变量提前期中包含的原始散列数组,如OP所示。

@data = leadtimes.collect{|i| [i['ORDER_CODE'], i['lead_time']]} 

只要将@data作为参数传递给line_chart,图表就会被正确绘制。

相关问题