当我创建和.save()一个新记录时,我的Spine.js模型向服务器发送一个POST请求以将其添加到数据库。 没什么大不了... 但是当我向同一模型实例发出另一个.save()时,我希望Spine.js发送一个PUT请求,只是更新它的数据。
我怎样才能做到这一点?
这就是我的模型的样子:
class App.MeetingMinutes extends Spine.Model
@configure 'MeetingMinutes', 'subject', 'some', 'more', 'attributes'
@belongsTo 'archive', 'Archive'
@extend Spine.Model.Ajax
@url: '#' # only dynamically scoped from Entries controller
@setArchive: ( _id ) ->
@url = '/archives/' + _id + '/meeting_minutes'
(向@configure添加id列也不起作用)
在我的Rails控制器(创建操作)中,我将整个Object作为JSON返回
format.json { render :json => @meeting_minutes, :status => :created }
这就是我正在使用它:
mm = new App.MeetingMinutes({subject: 'subject'})
mm.save() // POST
mm.subject = 'changed subject!'
mm.save() // another POST
mm.isNew() // true (obviously :/)
有什么想法吗?
答案 0 :(得分:1)
不确定你是否对它进行了整理,但这听起来像是我曾经面临的一个问题。我认为你需要将保存分配给变量,所以这个:
mm = new App.MeetingMinutes({subject: 'subject'})
mm = mm.save()
mm.subject = 'changed subject!'
mm = mm.save()
第二次保存应该是PUT而不是POST。现在我不清楚这是用途还是仅仅是一种解决方法,但似乎有效。希望它有所帮助。