2013-08-07 66 views
0

我有以下型號模型的關係:如何保存與Ember數據

App.Loan = DS.Model.extend 
    name: DS.attr('string'), 
    products: DS.hasMany('App.Product') 

然後在我的代碼我打電話一個貸款對象,它具有相關的許多產品上save方法,但只有獲得貸款發佈到服務器,關聯的對象不會。

回答

0

快速查看代碼,似乎這是有意的,因爲調用保存在記錄上會添加此記錄,並且只在當前事務中記錄此記錄。如果嵌入,還會添加關聯的對象。在你的情況下,我會先創建一個新的事務,添加記錄和關聯的對象,然後調用這個事務的提交。類似於

var transaction = store.transaction(); 
transaction.add(loan) 
loan.get('products').forEach(function(product)){ 
    transaction.add(product); 
}); 
transaction.commit() 

如果要將產品嵌入貸款中,可以通過像這樣配置適配器來完成。假設您正在使用默認的REST適配器:

DS.RESTAdapter.map('App.Loan', { 
    products: { embedded: always } 
} 
+0

如果我這樣做,我的產品不會與服務器中的貸款關聯,因爲它們是由他們自己發送的。 – ryudice

+0

所以,我想你想在貸款中嵌入產品。 –