Wie übergebe ich ein Ruby-Array an Javascript, um ein Liniendiagramm zu erstellen

Ich versuche, eine Webseite zu erstellen, auf der Liniendiagramme in meiner Ruby on Rails 2.3.14-Anwendung angezeigt werden. Ich habe ein Tool namens JS Charts gefunden, mit dem ich schöne Grafiken mit Javascript erstellen kann, aber ich habe Probleme, die benötigten Daten zu senden. So erstellen Sie ein statisches Liniendiagramm:

<code><script type="text/javascript">
  var myData = new Array([1, 395], [2, 244], [3, 223], [4, 210], [5, 238], [6, 223], [7, 275], [8, 31]);
  var myChart = new JSChart('chartcontainer', 'line');
  myChart.setDataArray(myData);
  myChart.draw();
</script>
</code>

Ich habe diesen Code in stats.html.erb eingefügt und er wird angezeigt. Ich benötige es jedoch, um Liniendiagrammdaten anzuzeigen, die ich bereitstelle. Im Controller wird ein zweidimensionales Array erstellt:

<code>>> @a
=> [[1, 395], [2, 244], [3, 223], [4, 210], [5, 238], [6, 223], [7, 275], [8, 31]]
</code>

Ich sollte in der Lage sein, diese Variable in der Ansicht zu verwenden und einzustellenvar myData dazu mit etwas wie:

<code>var myData = "<%= @a %>";
</code>

Ich habe andere Dinge ausprobiert wie:

<code>var myData = JSON.parse( "<%= @a.to_json %>" );
</code>

aber nichts scheint zu funktionieren. Kann ich irgendetwas tun?

BEARBEITEN:

Es gab ein Problem mit dem Array, das der Controller an die Ansicht (@a) weitergab, die leer war. Ich konnte verwenden:

<code>var myData = JSON.parse( "<%= @a.to_json %>" );
</code>

um das Liniendiagramm mit den richtigen Daten anzuzeigen, die in die Ansicht übertragen werden.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage