Ответ 1
Используя ActiveModelSerializer
, вы можете включить EmbeddedRecordsMixin
, который позволяет использовать встроенные записи. (В версиях канарейки 1.0 beta 9+ вы также можете использовать JsonSerializer
/RESTSerializer
)
Serializer
App.ColorSerializer = DS.ActiveModelSerializer.extend(DS.EmbeddedRecordsMixin, {
attrs: {
foos: {embedded: 'always'}
}
});
Модели
App.Color = DS.Model.extend({
color: DS.attr(),
foos: DS.hasMany('foo')
});
App.Foo = DS.Model.extend({
name: DS.attr()
});
JSON
{
colors:[
{
id: 1,
color: "red",
foos:[
{
id:1,
name:'something 1'
},
{
id:2,
name:'something 2'
}
]
},
...
http://emberjs.jsbin.com/qagalabaso/1/edit
Для RESTSerializer
и JsonSerializer
следует тот же шаблон
App.ColorSerializer = DS.RESTSerializer.extend(DS.EmbeddedRecordsMixin, {
attrs: {
foos: {embedded: 'always'}
}
});