我在我的 Rails 3 应用程序中使用 Highcharts 来允许用户创建和保存图表注释(我使用带有标签的专用散点图系列保存)。我已经能够弄清楚如何将记录保存到数据库中,如下所示:
$.ajax({
type: "POST",
url: "<%= service_annotations_path.to_s %>.json",
data: {
annotation: {
name: name,
time: new Date(x),
value: y,
}
},
success: function(msg){
alert(msg);
}
});
但我正在努力弄清楚如何使用 AJAX 实现删除。问题似乎有两个方面:
我需要使用通过 JS 从图表中检索到的所选点的 x/y 坐标来查找注释记录,但我不确定如何将其传递回控制器/助手。我想是这样的:
var annId = "<%= find_annotation(this.x, this.y) %>";
... 可能会工作,返回一个注释 id,我可以用它来删除对象,但我不确定如何从 JavaScript 访问 Ruby 中的那些 JS 坐标变量 [this.x 和 this.y] ......我是什么'正在阅读表明它通常不会完成。(以及我发现的用于规避似乎已被弃用的示例。)
然后,我需要弄清楚实际的删除 AJAX ......
$.ajax({ type: "DELETE", url: '<%= service_annotations_path.to_s %>' + '/' + this.id + '.json', data: { annotation: { time: new Date(this.x), value: this.y, } }, success: function(msg){ alert(msg); } });
由于它嵌套在服务资源下,这本身就很复杂。
我认为如果我能完成第一部分,将 x 和 y 参数从 JS 传递给 Ruby 应该是可行的。非常感谢任何指针。