7

Ruby on Rails 2.3.14 アプリケーションで折れ線グラフを表示する Web ページを作成しようとしています。Javascript を使用して素敵なグラフを作成できる JS Charts というツールを見つけましたが、必要なデータを送信するのに問題があります。静的折れ線グラフを作成する方法は次のとおりです。

<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>

そのコードを stats.html.erb に入れると、表示されます。ただし、提供する折れ線グラフデータを表示するには必要です。コントローラーで 2 次元配列が作成されます。

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

var myDataビューでその変数を使用して、次のように設定できるはずです。

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

私は次のような他のことを試しました:

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

しかし、何も機能していないようです。何か私にできることはありますか?

編集:

コントローラーがビュー (@a) に渡した配列が空であるという問題がありました。私は使用できました:

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

ビューに渡された正しいデータを含む折れ線グラフを表示します。

4

1 に答える 1

8

あなたはそれを機能させたようですが、あなたは物事を少しきれいにすることができます:

<%= javascript_tag do %>
  window.myData = <%=raw @a.to_json %>;
<% end %>

または、Rails 3では、HTML5に精通し、dataヘルパーを使用してデータをhtmlタグの属性として追加できます。

<%= content_tag "div", id: "myDiv", data: {stuff: @a} do %>
<!-- some html stuff...-->
<% end %>

次に、javascript(jQueryを使用)で:

var myData = $('#myDiv').data("stuff")

そして超熱心な人は、このレールキャストをチェックしてください

于 2012-05-02T06:01:26.170 に答える