【问题标题】:Ember destroyRecord on polymorphic record calls the wrong route多态记录上的 Ember destroyRecord 调用错误的路由
【发布时间】:2016-01-26 00:19:04
【问题描述】:

我的 ember 应用程序中有一个多态记录类型。 Posts 有一个称为响应的多态关联,它可以是几种响应。

// post.js
import DS from 'ember-data';

export default DS.Model.extend({
  ...
  responses: DS.hasMany('response', { polymorphic: true })
});

响应模型是所有其他类型的基础。

// response.js
import DS from 'ember-data';

export default DS.Model.extend({
  post: DS.belongsTo('post'),
  message: DS.attr('string')
});

例如,评论继承自响应。

// comment.js
import Response from '../models/response';

export default Response.extend();

这非常适合使用 ember-data 加载模型。它正确连接到 Rails 服务器上的/responses 以获取所有类型的响应。

但是,当我尝试使用 record.destroyRecord() 删除记录时,它会将删除发送到服务器上的 /comments,而不是 /responses。因为这是一条多态记录,所以服务器上没有comments 路由。

ember-data 的其他部分是否可以指示记录删除应该是多态的?

【问题讨论】:

    标签: ember.js polymorphism ember-data


    【解决方案1】:

    您正在寻找的是 ember 的 adapter 部分。在adapter 中,您可以指定呼叫的端点。


    https://guides.emberjs.com/v2.3.0/models/customizing-adapters/ http://emberjs.com/api/data/classes/DS.RESTAdapter.html

    确保您引用的是相同版本的 ember 应用。


    buildUrlMixin 非常适合自定义特定操作的 url http://emberjs.com/api/data/classes/DS.BuildURLMixin.html


    import DS from 'ember-data';
    
    export default DS.RESTAdapter.extend({
       namespace: 'api/1'
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-15
      • 2015-03-14
      相关资源
      最近更新 更多