Ruby on rails 试图用ActiveRecord数据填充javascript数组
所以我用图表来显示最常见的操作系统(如XP、Server2003等),我试图从ActiveRecord中提取这些信息。我有一个Ruby on rails 试图用ActiveRecord数据填充javascript数组,ruby-on-rails,Ruby On Rails,所以我用图表来显示最常见的操作系统(如XP、Server2003等),我试图从ActiveRecord中提取这些信息。我有一个节点模型,它有操作系统列 在我的show页面中,这是我在底部看到的内容: var chart = c3.generate({ bindto: '#nodes-os-chart', title: { text: 'Top 5 Operating Systems Detected' }, data: { colu
节点
模型,它有操作系统
列
在我的show
页面中,这是我在底部看到的内容:
var chart = c3.generate({
bindto: '#nodes-os-chart',
title: {
text: 'Top 5 Operating Systems Detected'
},
data: {
columns: [
['Microsoft Windows XP', 10],
['Microsoft Windows Server 2003', 5],
['Microsoft Windows Server 2016', 15]
],
type : 'pie',
onclick: function (d, i) { console.log("onclick", d, i); },
onmouseover: function (d, i) { console.log("onmouseover", d, i); },
onmouseout: function (d, i) { console.log("onmouseout", d, i); }
},
legend: {
position: "right"
}
});
但是,我想用ActiveRecord中的一些数据填充columns数组,因此我尝试将其转换为ajax调用,例如:
var operating_systems = $.ajax({
url: window.location.pathname + "/node_os",
type: 'GET',
dataType: 'json', // added data type
success: function(res) {
console.log(res);
alert(res);
}
});
var chart = c3.generate({
bindto: '#nodes-os-chart',
title: {
text: 'Top 5 Operating Systems'
},
data: {
columns: operating_systems,
type : 'pie',
onclick: function (d, i) { console.log("onclick", d, i); },
onmouseover: function (d, i) { console.log("onmouseover", d, i); },
onmouseout: function (d, i) { console.log("onmouseout", d, i); }
},
legend: {
position: "right"
}
});
我为get'node\u os'
添加了一条路由,以映射回必要的控制器。但是,现在在控制器中,这是我为node\u os
定义的方法:
# GET /logs/4/node_os
def node_os
return ['Test1','Test2']
end
Test1和Test2只是示例,但我正在尝试找出实现这一点的最佳方法。当我尝试在浏览器中运行时,会弹出一个“未定义”的弹出窗口
非常感谢您的帮助。使用以下方法解决了此问题:
基本上,我的show.html.erb
只进行AJAX调用,其余调用发生在js.erb
文件中。使用以下方法解决了这个问题:
基本上,我的show.html.erb
只进行AJAX调用,其余调用发生在js.erb
文件中