簡體   English   中英

Chartkick與Ruby on Rails一起繪制具有多個系列的line_chart

[英]Chartkick with Ruby on Rails to render a line_chart with multiple series

我有一個模型Level,它每次定義時都會記錄8個不同水箱中的水位值。 因此,每個級別都有一個:box_id:level_value和aa :created_at時間戳。 我想在line_chart中繪制這些值,其中y軸具有所有框的:created_at值,x軸具有水平。 隨着時間的流逝,將有8個系列的液位值。

我正在使用Chartkick寶石,但沒有獲得正確的圖表。 我的控制器是這樣的:

def chart
    @levels = Level.all
end

我正在嘗試在我的觀點上做到這一點:

<%= line_chart @levels.group(:box_id).group(:created_at).count %>

但是我得到這個:

在此處輸入圖片說明

似乎問題出在count()方法上,但是如果沒有這種方法,我沒有找到一種方法。

我通過將名稱和日期傳遞給line_chart找到了答案。

這是對控制器的操作:

def get_all_tanks_graph
    @hash = {}
    @array = Array.new
    @levels = Level.get_all_tanks_levels

    @levels.each do |l| 
      l.each do |i| 
        @hash[i.created_at] = i.level 
      end 
      @array << @hash 
      @hash = Hash.new 
    end

    render json: @array.each_with_index.map { 
      |a, index| { 
        name: "Caixa #{index + 1}", data: a 
      } 
    }

  end

這是調用操作的助手。

line_chart get_all_tanks_graph_path

暫無
暫無

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

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