我正在尝试使用Google Chart Tools绘制图表。
google.load("visualization", "1", {packages:["corechart"]});
google.setOnLoadCallback(drawChart);
function drawChart() {
var data = new google.visualization.DataTable();
data.addColumn('number', 'Month');
data.addColumn('number', 'Money');
data.addRows([
[<%= @months %>, <%= @money %>]
]);
var options = {
title: 'Title'
};
var chart = new google.visualization.LineChart(document.getElementById('chart_div_2'));
chart.draw(data, options);
}
@months和@money是数组。不幸的是,我可能无法以这种方式传递数组,因为图表没有显示出来。处理这种情况的权利是什么?
更新
好的,我在for循环中使用了Gon和setCell函数,它可以正常工作
答案 0 :(得分:0)
使用json。 respond_to
块可用于此目的。返回包含数据值数组的json哈希。
def months_monies
respond_to |format|
format.json {render :json => @post}
# The post is a Ruby hash that gets converted into json string
format.html #months_monies.html.erb
end
end
考虑@post
变量的示例,例如{:a => {"January" => 1000}, :b => {"April" => 1222}}
可以通过对http://localhost:3000/months_monies.json
使用jQuery的示例:
$.get("http://localhost:3000/controller/months_monies.json",function(post){
post.a.January # => 1000
post.b.April # => 1222
});
如果@post
变量是一个数组(在您的情况下可能是最可能的情况),该方法几乎相似。说@post = [{'january' => 1000}, {'february' => 1111}]
然后,您可以使用post[0].january
和post[1].february
来获取$.get
块中的值。
希望有所帮助。
答案 1 :(得分:0)
在我的问题中,我展示了一个将ruby数组传递给Google chart api的工作示例。 (我的问题与在Ruby中指定缺少/ null系列值有关,这似乎不会影响您的问题。)