Ember Data 期望对删除记录做出什么响应



我正在使用带有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作为响应值。

所以也许情况已经改变,或者它也取决于其他事情......我不能说,只能告诉你什么对我有用。

最新更新