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

Custom route for record.save() in ember

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

 record.save() 

在创建 post 时,默认情况下它 post 发送到 Rails(后端)中我的 /post url。这适用于我的情况。但是为了将来使用,我如何指定自定义路由?假设我想 post 这个模型到我的后端到一条名为

的路由
"/post/save" 

如何让ember中的record.save()走这条路?

ember 中的

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

ember generate adapter model-name

在您的情况下,您希望在创建 post 时调用 /post/save 而不是 /post。您将重载方法 urlForCreateRecord:

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

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

您可以在 post 型号的适配器中执行此操作。

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

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

只有当 save 方法正在创建记录 (POST) 时才会使用 url,当 saveing 已经存在的记录 (PATCH) 时,您应该使用 urlForUpdateRecord