Я использую драгоценный камень lazy_highcharts и пытаюсь настроить живые графики. Вслед за этим руководство для live charts я добавил функцию в мой контроллер, который отображает вывод JSON в этом формате [1340051521000,8]
Live Charts with Highcharts
def live
x = Time.now.to_i * 1000
y = Random.rand(11)
#create an array and echo to JSON
ret =[x,y]
x=ActiveSupport::JSON
@j=x.encode(ret)
render :json => @j
end
Следующая У меня есть новый файл JS под названием live_update.js, где я наклеенные шаги 2. и 3. содержащий 'requestData()'
Я сделал обратный вызов с точки зрения:
= high_chart("my_id", @h) do |c|
requestData();
Примечание: Я не был в состоянии назвать это от моего контроллера: f.options[:chart][:events][:load] = 'requestData'
Когда я запустил его, я получаю сообщение об ошибке: диаграмма не определена, когда она четко определена глобально в файле JS.
Это то, что я вижу в браузере Source View:
<script type="text/javascript">
jQuery(function() {
// 1. Define JSON options
var options = {
chart: {"defaultSeriesType":"column","renderTo":"my_id","zoomType":"xy"},
title: {"text":"Test"},
legend: {"layout":"horizontal","style":{}},
xAxis: {"type":"datetime"},
yAxis: {"title":{"text":"Agents"},"labels":{},"min":"0","allowDecimals":false,"gridLineDashStyle":"LongDash"},
tooltip: {"enabled":true},
credits: {"enabled":false},
plotOptions: {"areaspline":{}},
series: [{"name":"test","data":[]}],
subtitle: {}
};
// 2. Add callbacks (non-JSON compliant)
requestData();
// 3. Build the chart
var chart = new Highcharts.Chart(options);
});
</script>