灰烬中record.save()的自定义路由

时间:2018-08-08 20:33:09

标签: ruby-on-rails ajax ember.js ember-data

在ember中,我有一个名为“ Post”的模型。  如果我执行

 record.save() 

创建帖子时,默认情况下,它发布到我在Rails(后端)中的/post网址中。这对我来说有效。但是,为了将来使用,我如何指定自定义路线?假设我想将此模型发布到后端

"/post/save" 

我如何在烬中制作record.save()才能走这条路线?

2 个答案:

答案 0 :(得分:2)

ember中的

Adapters管理模型与远程数据通信的方式。如果您需要超出ember约定,则可以为模型创建一个自定义适配器,该适配器可以将动作指向不同的位置。

ember generate adapter model-name

在您的情况下,创建帖子时,您想致电/post/save而不是/post。您将重载方法urlForCreateRecord

urlForCreateRecord(modelName, snapshot) {
  return '/post/save';
}

每个操作(创建,更新,新的,查找,查询)的URL都可以调整以适合您的后端。

答案 1 :(得分:0)

您可以在帖子模型的适配器中完成此操作。

鉴于您的情况,您需要添加:

urlForCreateRecord () {
    return this._super(...arguments) + '/save';
}

仅当save方法正在创建记录(POST)时才使用该url,当save设置现有记录(PATCH)时,您应使用urlForUpdateRecord