我正在尝试的内容:
坚持新记录,但由于某种原因,请求有效载荷即使记录有数据。
这是一个小提琴:http://jsfiddle.net/brancusi/m8vrb/16/
(忽略火箱,它就在那里,因此我们可以在保存时检查请求有效载荷。)
说明:
您会注意到,保存记录时,请求有效载荷为空。
理想情况下,请求有效负载看起来像这样:
{
"inventory": {
"entry_time": "2014-02-05",
"client_id": 1,
"user_id": 1,
"product_stock_levels": [
{
"product_id": 1,
"quantity": 2
},
{
"product_id": 2,
"quantity": 0
},
{
"product_id": 3,
"quantity": 8
}
]
}
}
注意:
这只是一个新记录,这似乎是一个问题。更新现有记录发送正确的有效载荷。
您期望ember数据将关系嵌入模型中,以保存为默认值。这不是默认行为。
您可以将关系定义为每个模型嵌入。但是不再支持嵌入式记录功能,如下所述:https://github.com/emberjs/data/blob/blob/master/master/transition.md我不确定基本嵌入式记录功能是否仍然可与最新版本一起使用Ember Data。但是您将记录定义为这样的嵌入:
App.InventorySerializer = DS.ActiveModelSerializer.extend(DS.EmbeddedRecordsMixin, {
attrs: {
productStockLevels: {embedded: 'always'}
}
});
由于核心团队停止支持此嵌入式记录功能,因此,如果您需要对嵌入式记录的支持,我建议您使用EmbbededAdapter
或EmbeddedMixin
。您在这里找到它们:https://github.com/pixelhandler/ember-data-extensions
但是,由于ember数据嵌入了DedAdapter尚不稳定。也许您应该考虑如果您可以灵活地定义API,则不要嵌入记录以降低复杂性。