Ember Data对删除记录的期望是什么?

时间:2013-12-18 02:00:21

标签: ruby-on-rails ember.js 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中重新创建。

Ember在回复中期望什么?

3 个答案:

答案 0 :(得分:7)

你应该发回200一个空的有效json响应{},返回的任何数据都应用于记录,就好像它们是属性一样。

http://emberjs.jsbin.com/OxIDiVU/215/edit

此外,您可以发回204而无响应。

http://emberjs.jsbin.com/OxIDiVU/214/edit

答案 1 :(得分:5)

jQuery 1.9 no longer treats 200JSON请求的响应成功。您的服务器现在应该为具有空响应正文的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作为响应值。

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