0

私は古典的なマルチモデル フォームを持っています: 私のモデルで述べたように、多くの 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

4

0 に答える 0