0

Google Chart Tools を使用してグラフを描画しようとしています。

  google.load("visualization", "1", {packages:["corechart"]});
  google.setOnLoadCallback(drawChart);
  function drawChart() {
    var data = new google.visualization.DataTable();
    data.addColumn('number', 'Month');
    data.addColumn('number', 'Money');
    data.addRows([
        [<%= @months %>, <%= @money %>] 
        ]);

    var options = {
      title: 'Title'
    };

    var chart = new google.visualization.LineChart(document.getElementById('chart_div_2'));
    chart.draw(data, options);
  }

@months と @money は配列です。残念ながら、チャートが表示されないため、おそらくこの方法で配列を渡すことはできません。この種の状況に対処する正しい方法は何ですか?

アップデート

OK、 for ループで Gon と setCell 関数を使用しましたが、動作します

4

2 に答える 2

0

json を使用します。ブロックはこれrespond_toに使用できます。データ値の配列を含む json ハッシュを返します。

def months_monies
  respond_to |format|
    format.json {render :json => @post}
    # The post is a Ruby hash that gets converted into json string
    format.html #months_monies.html.erb
  end
end

@post変数がある例を考えてみましょう。{:a => {"January" => 1000}, :b => {"April" => 1222}}

これには、AJAX 呼び出しを行うことにより、javascript ブロックからアクセスできます。http://localhost:3000/months_monies.json

jQuery を使用した例:

$.get("http://localhost:3000/controller/months_monies.json",function(post){
  post.a.January # => 1000
  post.b.April   # => 1222
});

変数が配列である場合@post(あなたの場合はおそらくそうかもしれません)、メソッドはほとんど同じです。言う@post = [{'january' => 1000}, {'february' => 1111}]

次に、 and を使用post[0].januaryしてブロックpost[1].february内の値を取得します。$.get

それが役立つことを願っています。

于 2012-08-13T19:57:32.370 に答える
0

SO の質問では、ルビー配列を Google チャート API に渡す実際の例を示します。(私の問題は、問題に影響を与えないように見えるRubyで欠落/nullシリーズ値を指定することに関係しています。)

Rails アプリで Google チャート API を使用する - arrayToDataTable を使用するときに、シリーズに null (欠落) 値を指定する方法

于 2012-10-15T07:32:10.330 に答える