4

jQuery/javascript を使用して、haml テンプレートに Highcharts グラフを表示しています。以下は、HighCharts サイトのデモ コードからのスタンドアロン グラフを示すスニペットです。

:javascript

  $(document).ready(function() {
    $("#tabs").tabs();
    new Highcharts.Chart({
      chart: {
        renderTo: 'volume_chart'
      },
      title: {
        text: 'Logarithmic axis demo'
      },
      xAxis: {
        tickInterval: 1
      },
      yAxis: {
        type: 'logarithmic',
        minorTickInterval: 0.1
      },
      tooltip: {
        headerFormat: '<b>{series.name}</b><br />',
        pointFormat: 'x = {point.x}, y = {point.y}'
      },
      series: [{            
        data: [1, 2, 4, 8, 16, 32, 64, 128, 256, 512],
        pointStart: 1
      }]
    });
  });

これはうまくいきます。今、show.html.haml ファイルの ruby​​/rails 配列からシリーズ データを次のように設定しようとしています。

...
- data_array        = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512]
...
:javascript

  $(document).ready(function() {
  ...
      series: [{            
        data: "#{data_array}",
        pointStart: 1
      }]
    });
  }); 

これにより、次のエラーが表示されます。

undefined method `to_js' for [1, 2, 4, 8, 16, 32, 64, 128, 256, 512]:Array

ruby/rails コードから javascript/jquery コードに data_array を渡すにはどうすればよいですか?

どんな助けにも感謝します。

ありがとう。

バーラト

4

2 に答える 2

5
require 'json'

...

"#{data_array.to_json}"
于 2012-04-15T01:14:07.513 に答える
0

ちょっとHAMLでは使用する必要はありませんto_json

   :javascript
     $(document).ready(function() {
       ...
       series: [{            
         data: #{ruby_array},
         pointStart: 1
       }]
     });
    }); 

完全に動作します

于 2016-09-28T12:12:33.067 に答える