Что вам в основном нужно сделать, так это выполнить строковые манипуляции (обычно на основе шаблонов), чтобы сделать вывод ruby действительным исходным файлом JavaScript, который будет отправлен клиенту и обработан с помощью Google Charts.
Испускаемый вами Javascript должен быть обработан Ruby, чтобы он работал.
Если вы используете Ruby on Rails, есть отличный способ сделать это с помощью ключевого слова respond_to
, гдеВы можете указать разные выходные данные для разных форматов (json / xml / html / js).
Если вы используете Rails, вы можете просто определить метод действия следующим образом:
class HomeController < ApplicationController
def Show
@data = [["harry", 10], ["sue", 19]]
respond_to do |format|
format.js
end
end
end
Youзатем внутри app / views / home должен быть файл с именем show.js.erb
, который выглядит следующим образом:
var data = new google.visualization.DataTable();
data.addColumn('string', 'Name');
data.addColumn('number', 'Velocity');
<% @data.each do |d| %>
data.addRow(['<%= @d[0] %>', <%= @d[1] %>]);
<% end %>
Затем вы переходите к тому моменту, когда вам нужны эти данные, вы просто вставляете свой <script>
тег, указывающий на это действие home / show.js:
<script type="text/javascript" src="/home/show.js" />
После этого будет выполнено действие home # show ( в новом запросе ), и данные будут возвращены ввашей страницы.
ИЛИ :
Вы можете просто вывести тег в вашем представлении с данными, заполненными из текущего запроса, так же, как и с любымдругие вещи (я просто не могу сказать, как вы это делаете в HAML)