销毁服务器模型不会将id更新为null

时间:2012-05-10 05:59:00

标签: rest backbone.js backbone-relational

在我改为Backbone-Relational后,当我调用destroy()时,我的模型停止工作..我必须确保当它在服务器上删除成功时,客户端将不再有id,所以当我尝试再次保存我的模型不会请求PUT(更新) - 在服务器端抛出Record Not Found。

Coffeescript方

save: ->        
    if isBlank @model.get("text")
        @model.destroy() # after success it still with same attributes including id!!
    else
        @model.save()

Rails方

def destroy
    @note = Note.find(params[:id])
    @note.destroy        
    respond_with @note # callback is empty
end

Backbone-Relational的bug可能呢? Backbone.js会在destroy之后更新id吗?

1 个答案:

答案 0 :(得分:0)

Backbone看起来不像是以任何方式修改模型。除非将其从集合中删除(如果有的话)。

Check the code

它的作用是触发事件destroy,这样你就可以轻松地听取这个事件并做任何你认为正确的破坏行为:

// code simplified and no tested
var MyModel = Backbone.Model.extend({
  initialize: function(){
     this.on( "destroy", this.afterDestroy, this );
  },

  afterDestroy: function(){
    this.set( "id", null );
  }
});