jeudi 23 juillet 2015

Ember {embedded: 'always' } on model Vs Serializer

I was reading through Ember docs and some examples on working with Embedded Object like JSON in Ember.

I came across the EmbeddedRecordsMixin feature and saw that we can write code like below to tell it is embedded record.

import DS from 'ember-data';

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

Qouting the below from Ember page

Note that this use of { embedded: 'always' } is unrelated to the { embedded: 'always' } that is defined as an option on DS.attr as part of defining a model while working with the ActiveModelSerializer. Nevertheless, using { embedded: 'always' } as an option to DS.attr is not a valid way to setup embedded records.

And i have also seen model written like this.

App.Child = DS.Model.extend({
  name: DS.attr('string'),
  toys: DS.hasMany('toy', {embedded: 'always'}),
});

Where child object has toys object embedded.

Going by the first example, can i write the child serailizer as below?

App.ChildSerializer = DS.RESTSerializer.extend(DS.EmbeddedRecordsMixin, {
  attrs: {
    toys: {embedded: 'always'}
  }
});

Can someone help me understand the difference between these two {embedded: 'always'} and what to use when?

Thanks




Aucun commentaire:

Enregistrer un commentaire