Ruby on Rails 2.3.14アプリケーションで折れ線グラフを表示するためのWebページを作成しようとしています。私はJavascriptを使って素敵なグラフを作成することができるJS Chartsというツールを見つけましたが、必要なデータを送るのに問題があります。静的な線グラフを作成する方法は次のとおりです。Ruby配列をJavascriptに渡して折れ線グラフを作成するには
<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 %>";
like:
var myData = JSON.parse("<%= @a.to_json %>");
しかし、何も動作していないようです。何か私にできることはありますか?
EDIT:
空だったビュー(@a)に渡されたアレイコントローラ、との問題がありました。私は以下を使用することができました:
var myData = JSON.parse("<%= @a.to_json %>");
適切なデータをビューに渡して表示するには、
<%= javascript_tag do %>
window.myData = <%=raw @a.to_json %>;
<% end %>
またはレール3のあなたはスーパーHTML5のサヴィなると、いくつかのATTとして、あなたのデータを追加するdata
ヘルパーを使用することができます。
良い質問なぜあなたの例がうまくいかないのか分かりません。あなたが.erbファイルになっていて、ルビ補間がうまくいくと仮定しています。たぶん、文字列に補間しようとしますか?あなたがそれを入力したかのように、Rubyがスクリプトに何を注入するかを評価するためです。 – Andrew
@ericは、結果ページの生成されたHTMLを貼り付けます。 – Abid
待って、何とか今回はうまくいった。コントローラがビューに渡したデータに問題があったと思います( '@ a')。私は 'JSON.parse(" <%= @ a.to_json%> ");'を使いました。私は少なくともその回答に感謝します。 – Eric