ember, ember-data 1.0, rails, rabl
I have next json returning from server:
{
"day":{
"id":5,
"expenditures":[{
"id":10,
"expense_type":{
"name":"Very Sad",
"id":2
}
},
{...}
]
}
}
I have next ember models:
Expense.Day = DS.Model.extend
expenditures: DS.hasMany('expenditure')
Expense.Expenditure = DS.Model.extend
day: DS.belongsTo('day')
expenseType: DS.belongsTo('expenseType')
Expense.ExpenseType = DS.Model.extend
name: DS.attr('string')
expenditures: DS.hasMany('expenditure')
And I use ActiveModelSerializer for each model with EmbeddedRecordsMixin, for ex:
Expense.DaySerializer = Expense.ApplicationSerializer.extend DS.EmbeddedRecordsMixin,
attrs:
expenditures: {embedded: 'always'}
Expense.ExpenditureSerializer = Expense.ApplicationSerializer.extend DS.EmbeddedRecordsMixin,
attrs:
expenseType: {embedded: 'always'}
day: {embedded: 'always'}
Expense.ExpenseTypeSerializer = Expense.ApplicationSerializer.extend DS.EmbeddedRecordsMixin,
attrs:
expenditures: {embedded: 'always'}
It propertly loads day and expenditures, but not expense_type. I inject into each serializer merhod extract with console.log and super() for debugging and see, that only DaySerializer executed. What's wrong with me? I am very close to insanity with Ember =(
The problem is for my ember data understanding. I look into the EmbeddedRecordsMixin source code and see, that only hasMany ralation can be embedded.
Just adding expense_type_id node to expenditure item solves the problem:
Ember process GET request for /expense_types/2 and load model. Thats all!