Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Model Spine.js模型:仅first.save()应创建新资源,以下所有内容应更新_Model_Save_Spine.js - Fatal编程技术网

Model Spine.js模型:仅first.save()应创建新资源,以下所有内容应更新

Model Spine.js模型:仅first.save()应创建新资源,以下所有内容应更新,model,save,spine.js,Model,Save,Spine.js,当我创建并.save()一条新记录时,我的Spine.js模型会向服务器发送一个POST请求,将其添加到数据库中。 没什么大不了的。。。 但是,当我向同一个模型实例发出另一个.save()时,我希望Spine.js发送一个PUT请求,只是更新它的数据 我怎样才能做到这一点 我的模型是这样的: class App.MeetingMinutes extends Spine.Model @configure 'MeetingMinutes', 'subject', 'some', 'more',

当我创建并.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'
(将id列添加到@configure也不起作用)

在Rails控制器(创建操作)中,我将整个对象作为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 :/)

有什么想法吗?

不确定你是否把这个问题整理好了,但这听起来像是我不久前遇到的一个问题。我认为您需要将save分配给变量,因此:

mm = new App.MeetingMinutes({subject: 'subject'})
mm = mm.save()
mm.subject = 'changed subject!'
mm = mm.save()

第二个保存应该是一个PUT而不是POST。现在我不清楚这是否是预期用途,或者只是一种变通方法,但它似乎有效。希望能有所帮助。

你对它的描述就是它对我的作用。第一次保存后,您可以检查isNew()在模型上返回的内容吗?这应该是错误的。如果这是真的,它将发布另一个帖子。你的模型上有ID栏吗?谢谢你的回复!我刚刚在我的帖子中添加了更多的信息。如果我是你,我会在第一次保存之前添加一个调试器,并逐步完成所有操作。您需要确保在spine中调用changeID,以将mm记录的ID设置为服务器上生成的ID。一旦发生这种情况,该记录就不应再标记为isNew()。只要一步一步地看它是否发生。若否,原因为何。