嵌入对象的第三级序列化



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请求并加载模型。这一切!

最新更新