2013-02-22 3 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) 

컨트롤러 : OrdersController가에

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

내가 형태로 만든 변경 사항을 적용하기위한 조치를 저장할 수 있습니다. 각 모델에 대해 두 가지 별도의 POST 요청이 발생하지만 연관성 자체는 작성되지 않습니다. 주문 모델은 먼저 저장하고 client_id는 클라이언트가 아직 존재하지 않기 때문에 분명히 null입니다. 나중에 Client 게시물을 이동하여 클라이언트를 저장하지만 Order 모델은 클라이언트에 대해 알지 못하고 클라이언트없이 유지됩니다.

그 해결책이 있습니까?

감사합니다, J

답변

1

이 뛰어난 엠버 데이터 문제로 인해 - 가능한 해결 방법에 대한 RESTAdapter: Allow new parent, child to be saved at once

체크 아웃 Tom Dale's Comment. 한 번에 두 레코드를 모두 저장하는 지원 기능을 수동으로 추가합니다.

다른 방법으로는 부모 레코드에 onCreate 콜백을 추가 한 다음 콜백에 자식을 만드는 것이 좋습니다. 두 번째 커밋()을하면 괜찮습니다. 그러면 작업이 완료됩니다.

+0

감사합니다.이 문제는 나를 미치게했습니다. 마지막으로 나는 didCreate 이벤트로 말한대로 해킹했습니다. @ client.one 'didCreate'. 나는 서버에 대한 3 건의 요청으로 끝났으므로 최적은 아니지만 작동합니다. –

+0

불행히도 기록을 수동으로 추가해도 전혀 작동하지 않는다는 것을 알았습니다. 클라이언트 레코드를 @ order.set ('client', @client)로 지정하고 @client.get ('orders')을 반대로해도 client.id가 null 인 서버로 이동합니다. –

+0

serialize가 끝났습니다. jquery.ajax를 사용하여 컨트롤러 액션에 레코드를 저장합니다. 솔직히 말해서보기 싫어서 적절한 어댑터 솔루션을 기다릴 수 없습니다. –