我在我的应用程序中使用了rails 4和backbone。我创建的删除方法与骨干网,但是当我尝试用它来删除,我得到这个错误:Backbone.js - 删除错误的请求400(错误的请求)
DELETE http://localhost:3000/[object%20Object] 400 (Bad Request)
我的删除方法:
deleteBook: (ev) ->
@model.destroy()
)
活动:
events:
"click .delete": "deleteBook"
按上那个错误,它显示模型类型是text/html
。所以我想我必须把它转换成json?
如果我这样做:
deleteBook: (ev) ->
@model.toJSON().destroy()
)
更新:
我在轨控制销毁方法(如果它的事项):
@book = Book.find(params[:id])
@book.destroy
redirect_to '/'
UPDATE2:
我的骨干型号:
$(document).ready ->
window.Book = Backbone.Model.extend(url: ->
(if @id then "/books/" + @id else "/books")
urlRoot: '/books/'
)
然后没有任何反应,我不会得到任何错误。所以我觉得我在这里做错了什么?
我认为你的问题不在Backbone中,而是在你的服务器上。当你在模型中使用destroy时,它会启动一个ajax请求来永久删除它。 – Puigcerber
@Puigcerber如果它在服务器中,我该如何修复它?如果这个问题很重要,我用我的导轨销毁方法更新了我的问题。 – Andrius
您在模型中设置的URL必须与您在Rails中使用的URL相同。例如,如果您在您的书籍模型'urlRoot:'/ books /''中,您需要http:// localhost:3000/books/[id]指向您的Ruby方法。 – Puigcerber