2011-06-03 73 views
0

骨幹似乎忽略了new運營商。在下面的代碼中,股票依賴於每次調用的不同產品。骨幹的第一個電話是POST - 該模型不存在 - 但是,即使每次創建new StockModel,以下是PUT。骨幹的模式單身?骨幹/ JavaScript忽略新對象

if (validName && validPrice) { 
    this.collection.create({ 
     name: name.val(), 
     price: price.val() 
    }, { success: function(product) { 
     var stock = new StockModel(); 
     var productId = product.get('id'); 
     stock.setProduct(productId); 
     stock.set({ quantity: 10 }); 
     stock.save(); 
    }}); 
} 

股票就像是一個資源:/product/{id}/stock

我的錯誤;錯誤是在這條線(在stock.set方法設置產品ID似乎症骨幹):

stock.set({ id: product.get('id'), quantity: 10 }); 

如果我取代以前由以下,一切正常:

stock.set({ id: 0, quantity: 10 }); 

product.get('id')是int

+0

你確定沒有POST到集合,然後多個PUT到集合(對於每個新模型) – Raynos 2011-06-03 17:05:37

+0

我已經有這個問題一兩天了。所以是的,我確定這段代碼嘗試一個POST,然後PUT下面的值。 var股票似乎是一樣的。我正在使用RequireJS進行模塊加載,但我沒有看到這可能是相關的。 – 2011-06-03 17:09:17

+0

我已經編輯了更多信息。 – 2011-06-03 17:14:43

回答

0

我很確定問題在於您使用id: product.get('id')作爲庫存項目的id。主幹使用id來確定天氣是否是新物體。我會重命名爲productId: product.get('id')。從上面的代碼片段中很難準確地知道你在做什麼,但我懷疑這是問題所在。在初始保存時將id保留出來,並讓您的服務器正確分配它。如果您從服務器返回股票對象,主幹應該爲您整理所有內容。

希望這會有所幫助!