2013-02-22 92 views
0

它接縫簡單,但我卡在這一個。我有一個單一的控制器,單一的視圖專用於訂單模型,它具有嵌套的客戶端。我對setupController創建空記錄:與關聯模型保存表格

路線:

ShowroomApp.OrdersRoute = Ember.Route.extend 
    model: -> 
    ShowroomApp.Order.createRecord() 
    setupController: (controller,model) -> 
    model.set("client", ShowroomApp.Client.createRecord()) 
    controller.set("content", model) 

控制器:

save: -> 
    @content.store.commit() 

在OrdersController我已經攢動提交表單所做的更改。它會爲每個模型分別生成兩個POST請求,但該關聯不會自行構建。訂單模型首先保存,並且client_id顯然爲空,因爲客戶端尚不存在。稍後去客戶端發佈並保存客戶端,但訂購模型不知道它,並保持沒有客戶端。

有沒有解決方案?

感謝, Ĵ

回答

1

這是因爲一個優秀的餘燼數據的問題 - RESTAdapter: Allow new parent, child to be saved at once

一個可能的解決方法退房Tom Dale's Comment。它涉及手動添加支持以便一次保存兩條記錄。

作爲一種替代方案,您可以考慮在父記錄中添加onCreate回調,然後在回調中創建子項。如果你有第二次提交()可以完成工作。

+0

謝謝,這個問題讓我很生氣。最後,我已經使用didCreate事件說明了這一點:@ client.one'didCreate'。我結束了對服務器的3個請求,所以它不是最佳的,但工作。 – 2013-02-23 01:07:23

+0

我發現很不幸,手動添加記錄根本不起作用。即使我指定客戶端記錄爲@ order.set('client',@client),並反轉@ client.get('orders')。pushObject @order - 更新到client_id = null的服務器 – 2013-02-23 12:08:41

+0

我結束了序列化記錄並使用jquery.ajax將其保存在控制器操作中。說實話相當醜陋,所以不能等待正確的適配器解決方案。 – 2013-02-23 14:11:56