Getting error: You need to pass a model name to the store's modelFor method

Getting error: You need to pass a model name to the store's modelFor method

使用 Ember 2.6.0

定义了以下路由:

Router.map(function() {
  this.route('brands');
  this.route('brand', {path: '/brands/:brand_id'});
});

brand 的型号是:

export default Model.extend({
  name: attr('string'),
  description: attr('string'),
  dateCreated: attr('date'),
  lastUpdated: attr('date'),
  regions: hasMany('region')
});

region 的模型是:

export default Model.extend({
  name: attr('string'),
  dateCreated: attr('date'),
  lastUpdated: attr('date'),
  brand: belongsTo('brand')
});

现在,当我尝试访问 /brands 时,我在路线中这样做:

export default Ember.Route.extend({
  model() {
    return this.store.findAll('brand');
  }
});

我收到以下错误:

You need to pass a model name to the store's modelFor method

这在添加 brand 路由和 region 关系之前有效。品牌是 parent,所以我不确定为什么这不起作用。

更新:

brand 模型中删除 regions: hasMany('region') 可以让事情再次发生。不确定为什么它不能使用定义的关系。

原来我必须为每个对象创建序列化程序。对于品牌我有:

import RESTSerializer from 'ember-data/serializers/rest';
import DS from 'ember-data';

export default RESTSerializer.extend(DS.EmbeddedRecordsMixin, {
  attrs: {
      regions: {embedded: 'always'}
  }
});

对于 region 我有:

import RESTSerializer from 'ember-data/serializers/rest';

export default RESTSerializer.extend({
});

从技术上讲,它可以在没有区域序列化程序的情况下工作,但我收到一条警告,指出 ember 在 region 模型中找不到 regions。我可能会向 ember 提交一张票,建议不必为了避免此警告而创建空 RESTSerializer