私は古典的なマルチモデル フォームを持っています: 私のモデルで述べたように、多くの 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();
そして、問題は次のとおりです。
- 輸送書類が正しく作成されている
- 輸送文書の行は順次作成されますが (それでも問題にならない可能性があります)、transport_document_id が間違っています (transport_document_id: 0)。
この動作は予期されたものですか? それを修正するにはどうすればよいですか?
ありがとう
編集:それが機能する唯一の方法は、埋め込みオプションを使用することです:
DS.RESTAdapter.map 'App.TransportDocument', {
transportDocumentRows: { embedded: 'always' }
}
このオプションは、トランスポート ドキュメントとその行を単一の HTTP 要求でコミットします。
これには、応答ハッシュtransport_document_rows
のキーにコンテンツを直接含めて、GET 応答を変更する必要があります。transport_documents