我有经典的多模型形式:一个包含许多 transport_document_rows 的传输文档,如我的模型中所述:
App.TransportDocument = DS.Model.extend
number: DS.attr 'string'
date: DS.attr 'string'
transportDocumentRows: DS.hasMany('App.TransportDocumentRow')
App.TransportDocumentRow = DS.Model.extend
productName: DS.attr 'string'
quantity: DS.attr 'string'
transportDocument: DS.belongsTo('App.TransportDocument')
我在控制台中写了这个脚本:
a = App.Invoice.createRecord();
a.get("invoiceRows").pushObject(App.InvoiceRow.createRecord());
a.get("store").commit();
问题如下:
- 我的运输文件已正确创建
- 我的传输文档行是按顺序创建的(它仍然可能不是问题),但传输文档 ID 错误(传输文档 ID:0)。
这种行为是预期的吗?我能做些什么来纠正它?
谢谢
编辑:它工作的唯一方法是使用嵌入式选项:
DS.RESTAdapter.map 'App.TransportDocument', {
transportDocumentRows: { embedded: 'always' }
}
此选项在单个 HTTP 请求中提交传输文档及其行。
这需要更改 GET 响应,包括直接在响应哈希键中的transport_document_rows
内容transport_documents