2017-04-09 7 views
0

モデルがあります。定義されるたびに8つのウォーターボックスのレベル値を記録するレベルがあります。したがって、各レベルは:box_id,:level_valueおよび:created_atタイムスタンプを持ちます。これらの値をline_chartにプロットしたいと思います。ここで、y軸にはすべてのボックスの値が:created_atであり、x軸にはレベルがあります。時間とともに登録されたレベル値を持つ8つのシリーズがあります。複数のシリーズでline_chartをレンダリングするRuby on Railsを使ったChartkick

私はChartkickの宝石を使用していますが、私は正しいチャートを入手できません。

def chart 
    @levels = Level.all 
end 

そして私は、私の見解でこれを行うにしようとしています: 私のコントローラはこれがある

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

しかし、私はこの取得しています:

enter image description here

それはと思われます問題はcount()メソッドですが、このメソッドを使わないとこれを行う方法が見つかりませんでした。

答えて

0

名前と日付を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 
関連する問題