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
。
使用 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
。