2017-09-28 9 views
1

간단한 Ember Twiddle을 설정하여 모델을 업데이트하려고 할 때 발생하는 오류를 보여줍니다. 데이터 조롱을 위해 ember-cli-mirage을 사용하고 있습니다. 문서에 따르면 PUT 요청을 처리해야하는 약식 경로를 만들었습니다. 는 않지만, 오류가있는 : Your handler for the url /api/shops/1 threw an error: Cannot convert undefined or null to objectRestSerializer가 사용되는 경우 약식 경로 처리기를 사용할 수 없습니까? (ember-cli-mirage)

JSONAPISerializer를 사용하여, 모든 shorthands (mirage/config.js을)와 협력 나는 모델을 업데이트 할 수있어,하지만 내 경우에는 내가의 직렬화 된 ID를 가진 RESTSerializer을 사용해야합니다 응답. 나는 철, 모델의 attrs은 속성 이름의 끝에서 Id 않고 ​​있습니다 보내고있다 요청 페이로드 :

// attrs object in PUT request { name: "Shop 1", city: "1" // belongsTo relationship, }

이제 미라지가 가지고있는 각각의 데이터베이스 모델에 해당 속성에를 찾기 위해 노력하고있다 업데이트 할 수 있지만, 데이터베이스에이 cityId을 그리고 때문이 아니라, 그것을 찾을 수 없습니다 단지 city ...

나는이 issue report을 발견하고는 일하고있어,하지만 난 이런 일을 피할 수있는 기대했다. 이전 버전의 ember-cli-mirage (v0.1.x)에서는 serializer에서 RestSerializer를 사용할 수 있도록 serializer의 normalize 메서드를 재정의 할 필요가 없었습니다.

내 질문은입니다. 단축키 경로 처리기 만 사용하는 방법이 있습니까? 아니면 RestSerializer를 사용해야하기 때문에 도우미 또는 다른 사용자 지정 솔루션을 작성해야합니까? 그것은 정말로 슬프다. 그러나 적어도 나는 그 다음 알 것이다.

지원해 주셔서 감사합니다.

+0

답변을 모르겠지만 사용하려는 신기루의 버전을 기록해 두는 것이 좋습니다. – AlexMA

+0

공장 및 자동 모델 감지 지원에 대한 지원이 포함 된 버전을 사용하고 싶습니다. 그러나이 두 가지 기능을 모두 포함하고있는 첫 번째 버전을 사용해 보았을 때 위에서 설명한 것처럼 작동했습니다. –

답변

0

간단한 답변 : 버그 수정이 병합 될 때까지 사용자 지정 직렬 변환기가 필요합니다.

긴 대답 : Mirage의 기본 DB 변경으로 인해 문제가 0.2 -> 0.3으로 업그레이드 된 Mirage에서 발생한 것으로 보입니다. 아마도 고쳐질 것입니다 만, 지금 당장은 해결해야 할 것입니다.