Jak przekazać tablicę Ruby do Javascript, aby utworzyć wykres liniowy
Próbuję utworzyć stronę internetową do wyświetlania wykresów liniowych w mojej aplikacji Ruby on Rails 2.3.14. Znalazłem narzędzie o nazwie JS Charts, które pozwala mi tworzyć ładne wykresy za pomocą Javascript, ale mam problem z wysyłaniem potrzebnych danych. Oto sposób tworzenia statycznego wykresu liniowego:
<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>
Umieszczam ten kod w stats.html.erb i to się pojawia. Potrzebuję go jednak do wyświetlenia danych wykresu liniowego, które mu dostarczam. W kontrolerze tworzona jest tablica dwuwymiarowa:
<code>>> @a => [[1, 395], [2, 244], [3, 223], [4, 210], [5, 238], [6, 223], [7, 275], [8, 31]] </code>
Powinienem móc użyć tej zmiennej w widoku i ustawićvar myData
do tego z czymś w rodzaju:
<code>var myData = "<%= @a %>"; </code>
Próbowałem innych rzeczy, takich jak:
<code>var myData = JSON.parse( "<%= @a.to_json %>" ); </code>
ale nic nie działa. Czy jest coś, co mogę zrobić?
EDYTOWAĆ:
Wystąpił problem z tablicą, którą kontroler przekazał do widoku (@a), który był pusty. Mogłem użyć:
<code>var myData = JSON.parse( "<%= @a.to_json %>" ); </code>
aby wyświetlić wykres liniowy z właściwymi danymi przekazanymi do widoku.