我有一个使用主干的 Rails 应用程序。在控制台中,我可以创建一个集合,从服务器 (3) 获取文档,我通过检查长度来确认
文档 = 新文档();
docs.fetch();
文档长度
3
获取其中一份文档
d1 = docs.at(0) Object { cid= "c3" , changed={...}, attributes={...}, more...}
销毁文档
d1.destroy(); 删除 http: localhost:3000/docs/1
204 无内容 23ms jquery.js?body=1 (line 8215) Object { readyState= 1 , setRequestHeader=function(), getAllResponseHeaders=function(), more...}
检查文档的长度
>>> docs.length
2
创建一个新集合
docz = 新文档();
从服务器获取文件。注意“304 Not modified message”
docz.fetch(); GET http:// localhost:3000/docs 304 未修改 31ms
jquery.js?body=1 (line 8215) Object { readyState= 1 , setRequestHeader=function(), getAllResponseHeaders=function(), more...}
检查长度。它是 3,当我期望它是 2 时。
>>> docz.length
3
我不知道为什么当我调用 destroy 时,如果明显有 3 条记录,我会收到一条无内容消息
204 No Content
23ms
当我从数据库中检索记录时,访问数据没有问题
d.get('title')
>>>"diet book"
我在模型上设置了一个 url,所以我应该能够删除我认为的单个记录
url : function() {
var base = 'docs';
if (this.isNew()) return base;
return base + (base.charAt(base.length - 1) == '/' ? '' : '/') + this.id;
},
但是,我也不能删除通过一个集合docs.at(0).destroy
具有相同的效果。
这是我在 rails 控制器中的销毁功能
class DocsController < ApplicationController
respond_to :json
....
def destroy
respond_with Doc.find(params[:id])
end
end
该模型
class Doc < ActiveRecord::Base
attr_accessible :keywords, :text, :title
end
更新 一位对这篇文章发表评论的人指出,当我调用 destroy 时,我应该销毁某些东西,但我认为在对象上调用 destroy 会破坏对象
d.destroy() #should destroy d, shouldn't it?
这是我从文档中了解到的
book.destroy({success: function(model, response) {
...
}});
事实上,当我在一个对象上调用 save() 时,它会将对象保存到数据库中
d.save(); #this works, so why not d.destroy();