我正在使用带有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 中重新创建。
余烬对回应有什么期望?
您应该发回一个带有空的有效 json 响应的 200 {}
,任何返回的数据都将应用于记录,就好像它们是属性一样。
http://emberjs.jsbin.com/OxIDiVU/215/edit
此外,您可以发回没有响应的 204。
http://emberjs.jsbin.com/OxIDiVU/214/edit
jQuery 1.9 不再将JSON
请求的 200
响应视为成功。您的服务器现在应该为响应正文为空的DELETE
请求返回204
响应。
对于 rails 服务器,您可以执行以下操作:
def destroy
@something.destroy!
head :no_content
end
在 ember 1.5.1 和 ember data 1.0.0-beta.9+canary.410d62d6
中,我试图返回一个空的 json 对象/数组,如 { }
,如上面的答案。它没有用。
它仅适用于200
响应代码,并null
作为响应值。
所以也许情况已经改变,或者它也取决于其他事情......我不能说,只能告诉你什么对我有用。