ember, ember-data 1.0, rails, rabl
我有下一个json返回从服务器:
<>之前{"天":{"id":5"支出":[{"id":10" expense_type ": {"名称":"很难过","id":2}},{…}]}}之前我有下一个ember模型:
<>之前费用。Day = DS.Model.extend支出:DS.hasMany(支出)费用。支出= DS.Model.extend天:DS.belongsTo(天)expenseType: DS.belongsTo("expenseType")费用。ExpenseType = DS.Model.extend名称:DS.attr(字符串)支出:DS.hasMany(支出)之前我使用ActiveModelSerializer为每个模型与EmbeddedRecordsMixin,例如:
<>之前费用。DaySerializer = Expense.ApplicationSerializer.extendEmbeddedRecordsMixin,attrs:支出:{嵌入:'always'}费用。expenureserializer = Expense.ApplicationSerializer.extendEmbeddedRecordsMixin,attrs:expenseType: {embedded: 'always'}Day: {embedded: 'always'}费用。expensetypesserializer = expenseapplicationserializer .extendEmbeddedRecordsMixin,attrs:支出:{嵌入:'always'}之前它正确地加载了day和expenses,但没有加载expense_type。我在每个序列化器方法中注入extract with console.log和super()用于调试,并看到只有DaySerializer被执行。我怎么了?我很接近疯狂烬=(
这个问题是为了我的ember数据理解。我看了看EmbeddedRecordsMixin源代码,看到,只有许多关系可以嵌入。
只需将expense_type_id节点添加到支出项即可解决问题:
{
"day":{
"id":5,
"expenditures":[{
"id":10,
"expense_type_id": 2
},
{...}
]
}
}
Ember处理/expense_types/2的GET请求并加载模型。这一切!