2017-03-03 60 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,圖表就會被正確繪製。

相關問題