我正在使用带有rails后端的RESTful适配器的Ember Data。
当我从Ember record.deleteRecord(); record.save()
删除记录时,DELETE
请求将转到服务器并删除模型,但此错误将打印到javascript控制台:
Extract requested, but no data given for App.ThisModel. This may cause weird problems.
来自服务器的响应仅为render json: true
,因此我将其更改为render json: deleted_model
,这会为已删除的记录呈现json。
摆脱了之前的错误,但现在删除的记录在Ember中重新创建。
Ember在回复中期望什么?
答案 0 :(得分:7)
你应该发回200一个空的有效json响应{}
,返回的任何数据都应用于记录,就好像它们是属性一样。
http://emberjs.jsbin.com/OxIDiVU/215/edit
此外,您可以发回204而无响应。
答案 1 :(得分:5)
jQuery 1.9 no longer treats 200
对JSON
请求的响应成功。您的服务器现在应该为具有空响应正文的204
个请求返回DELETE
响应。
对于rails服务器,您可以执行以下操作:
def destroy
@something.destroy!
head :no_content
end
答案 2 :(得分:0)
在ember 1.5.1和ember-data 1.0.0-beta.9+canary.410d62d6
中,我尝试返回一个空的json对象/数组,如{ }
,就像上面的答案一样。它没有用。
它只能使用200
响应代码和null
作为响应值。
所以也许这已经改变了,或者它取决于其他事情......我不能说,但只告诉你什么对我有用。