【发布时间】:2013-03-12 06:50:21
【问题描述】:
我一直在谷歌搜索,但我似乎无法获得正确的设置,通过我在谷歌上看到的东西,我最终得到了这个:
var dataString = $('#markerform').serialize();
var id = $('#route_id').val()
$.ajax({
type: 'POST',
url: '/routes/'+id,
data: { "_method":"put", dataString},
dataType: "JSON",
success: function(data) {
console.log(data);
}
});
这是我的路由控制器
def update
@route = Route.find(params[:id])
respond_to do |format|
if @route.update_attributes
format.html
format.json { render text: "Done" }
else
format.json { render text: "Bad" }
end
end
end
但我最终得到了这个萤火虫错误:
SyntaxError: invalid object initializer
[Break On This Error]
data: { "_method":"put", dataString},
我该如何清理它,以便通过这个应用程序获得一些成功。谢谢。
【问题讨论】:
-
type: 'PUT'应该可以工作 -
@jvnill 但我读到它并非所有浏览器都兼容,我想确保我在整个过程中都兼容:)?
-
不确定。但为了修复您的错误,您应该将附加数据附加到序列化属性中。如果我没记错的话,dataString 将是一个字符串,所以只需像
dataString + '&_method=put'一样将 _method 添加到它,然后将它传递给像data: dataString这样的数据 -
@jvnill 你能看看我的控制器并告诉我为什么它在提交时给我一个 500 错误吗?
-
啊酷。那么是什么解决了你的问题?
标签: jquery ruby-on-rails ajax ruby-on-rails-3