Using Ember 2.6.0
Have the following routes defined:
Router.map(function() {
this.route('brands');
this.route('brand', {path: '/brands/:brand_id'});
});
The model for brand is:
export default Model.extend({
name: attr('string'),
description: attr('string'),
dateCreated: attr('date'),
lastUpdated: attr('date'),
regions: hasMany('region')
});
And the model for region is:
export default Model.extend({
name: attr('string'),
dateCreated: attr('date'),
lastUpdated: attr('date'),
brand: belongsTo('brand')
});
Now, when trying to access /brands I am doing this in the route:
export default Ember.Route.extend({
model() {
return this.store.findAll('brand');
}
});
I am getting the following error:
You need to pass a model name to the store's modelFor method
This worked prior to adding the brand route and region relationships. Brand is the parent, so I'm not sure why this isn't working.
UPDATE:
Removing regions: hasMany('region') from the brand model allows things to work again. Not sure why it isn't working with the defined relationship.
So it turns out I had to create serializers for each object. For brand I have:
import RESTSerializer from 'ember-data/serializers/rest';
import DS from 'ember-data';
export default RESTSerializer.extend(DS.EmbeddedRecordsMixin, {
attrs: {
regions: {embedded: 'always'}
}
});
And for region I have:
import RESTSerializer from 'ember-data/serializers/rest';
export default RESTSerializer.extend({
});
Technically, it works without the region serializer but I get a warning that ember couldn't find regions inside the region model. I may submit a ticket to ember to suggest not having to create an empty RESTSerializer just to avoid this warning.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With