2014-02-06 2 views
1

를 :

빈 요청 페이로드 - 내가 노력하고있어 엠버 데이터

는 새 레코드를 지속하지만 어떤 이유로 요청 페이로드는 레코드가 데이터가 비록 비어 있습니다. http://jsfiddle.net/brancusi/m8VrB/16/

(. 그것은 우리가 저장에 요청 페이로드를 검사 할 수 있습니다 만 거기는 중포 기지를 무시)

설명 :

당신은 것을 볼 수 여기에

은 바이올린의 레코드를 저장할 때 요청 페이로드는 비어 있습니다.

이상적 요청 페이로드는 다음과 같이 보일 것입니다 :

{ 
    "inventory": { 
     "entry_time": "2014-02-05", 
     "client_id": 1, 
     "user_id": 1, 
     "product_stock_levels": [ 
      { 
       "product_id": 1, 
       "quantity": 2 
      }, 
      { 
       "product_id": 2, 
       "quantity": 0 
      }, 
      { 
       "product_id": 3, 
       "quantity": 8 
      } 
     ] 
    } 
} 

참고 :

이 단지는 새 레코드 때 문제가 될 것으로 보인다. 기존 레코드를 업데이트하면 올바른 페이로드가 전송됩니다.

+0

지시 사항을 추가해야합니다. 양식을 제출하고 네트워크 활동을 시청하십시오. 또한 콘솔 로그를 확인하면 수량이 올바르게 나오므로 데이터가 있습니다. –

+0

레코드에 소품을 추가하고 페이로드에있는이 바이올린을위한 포크를 만들었으므로 문제는 실제로 "hasMany"레코드에만 있습니다. http://jsfiddle.net/brancusi/MLkRV/8/ –

+0

지금까지 두 단계로이 작업을 수행해야합니다. 나는 부모 레코드를 저장하고 약속에 -> 그 다음에 나는 자식 세트를 저장한다. 실제 데이터를 사용할 때 서버에 약 10 건의 호출이 이루어 지지만 합계는 발생합니다. 이것은 실제로 1 회 통과으로 20-30 개 제품으로 확장되지 않습니다. –

답변

1

기본적으로 저장시 모델에 엠버 데이터가 포함될 것으로 예상됩니다. 이는 기본 동작이 아닙니다.

모델마다 임베드 된 관계를 정의 할 수 있습니다. 하지만 여기에 언급 된 것처럼 더 이상 임베디드 레코드 기능에 대한 지원이 없습니다 : https://github.com/emberjs/data/blob/master/TRANSITION.md 기본 임베디드 레코드 기능이 여전히 최신 버전의 Ember 데이터로 작동하는지 확신 할 수 없습니다. 이 포함 된 기록 기능에 대한 핵심 팀이 지원을 중단

App.InventorySerializer = DS.ActiveModelSerializer.extend(DS.EmbeddedRecordsMixin, { 
    attrs: { 
     productStockLevels: {embedded: 'always'} 
    } 
}); 

때문에 당신이 포함 된 레코드에 대한 지원이 필요한 경우 EmbbededAdapter 또는 EmbeddedMixin을 사용하도록 추천 할 것입니다 매우 기본적인 :이 같은 임베디드 그러나 당신은 기록을 정의합니다. 다음에서 해당 제품을 찾으실 수 있습니다. https://github.com/pixelhandler/ember-data-extensions

Ember Data EmbeddedAdapter가 안정되지 않았습니다. API를 정의 할 때 융통성이 있다면 복잡성을 줄이기 위해 기록을 삽입하지 않는 것이 좋습니다.

+0

의견에 감사드립니다. 나는 이것을 바이올린에 추가하려고 시도했다 : http://jsfiddle.net/brancusi/9ZAbr/4/ 페이로드를 변경하지 않는 것 같다. 내가 연결 한 전환 로그를 읽었으며 이것이 비 직렬화를위한 것 같은데. 나는 자식 레코드를 포함하지 않는 것이 좋을 것이지만, 요청을 사이드로드하는 것과 비슷한 페이로드를 만드는 것입니다. 한 가지 방법으로 전체 양식을 제출하면 서버 측의 모든 것을 올바르게 처리 할 수 ​​있습니다. 기본적으로 레코드를 업데이트 할 때와 동일한 페이로드입니다. –

+0

죄송합니다. 내 잘못입니다. 더 긴 시간 동안 임베디드 레코드 지원 빌드를 사용하지 않았습니다. 나는 대답을 고쳤다. 추신 : 서버의 응답이 잘못되었습니다. 그래서 서버가 응답 할 때 오류가 발생합니다. – jelhan

+0

좋은 직장 : http://jsfiddle.net/brancusi/9ZAbr/5/ 정말 고마워.가질 수있는 좋은 옵션입니다. 난이 수동으로 사용자 지정 serializer 함께 일을했지만 어떻게 든 레코드의 나머지 부분을 엉망이. 빠른 응답 주셔서 감사! –

관련 문제