2017-03-03 5 views
1

APIから取得したデータを使用して単純な線グラフを描画しようとしていますが、ドキュメンテーションの例では通常のActiveRecordモデルのデータのみを使用しています。たくさん。私はモデル上で操作していないので、私はドキュメント(グループなど)で説明されているメソッドを使用することはできませんChartkick/Rails:モデルの代わりにオブジェクトのデータを使用してline_chartを作成する

私はこの呼び出しをREST APIに持っています。この2つは私がこの時点で興味のあるものです)、ORDER_CODEとLEAD_TIMEです。私はちょうどX軸のorder_codesとY軸のlead_timesでline_chartを表示したい。

私のコントローラコードはそうですが、私はDishを使ってJson.parseのハッシュをオブジェクトに変換します。 APIコールが機能しており、私のアプリでデータを正常に使用しています。

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

とビューで:

<%= line_chart @data%> 

私はこれをしようとしていたが、私はちょうど空のチャートました:私はAPIからもらったJSONのように見える

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

をこれは:

[{"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

最後に、OPで示されているように、可変リードタイムに含まれる元の配列のハッシュよりも、collectメソッドを使用して動作させました。

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

@dataをline_chartの引数として渡すだけで、グラフは忠実に描画されます。

関連する問題