簡體   English   中英

Chartkick / Rails:使用來自對象而不是模型的數據構建line_chart

[英]Chartkick/Rails: Build line_chart using data from an object instead of a Model

我正在嘗試使用從API檢索的數據繪制一個簡單的line_chart,但文檔示例僅使用來自常規ActiveRecord模型的數據,而且我正在苦苦掙扎。 由於我沒有在模型上操作,因此無法使用文檔中解釋的任何方法(組等)

我有一個對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"}]

我終於通過在變量提前期中包含的原始哈希數組上使用collect方法來實現它,如OP中所示。

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

只需將@data作為參數傳遞給line_chart,圖表就會被相關地繪制出來。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM