현재 EmberJS로 작성된 App 용 테스트를 작성하고 있습니다. 나는 신기루를 사용하고있다. 내가 만드는거야Ember Mirage와 관계를 가져올 수 없습니다.
신기루/모델/paperwork.js
export default Model.extend({
customer: belongsTo('customer'),
paperwork_products: hasMany('paperwork-product', { inverse: 'paperwork' }),
신기루/모델/서류 - product.js 내 시나리오에서
export default Model.extend({
paperwork: belongsTo('paperwork', { inverse: 'paperwork_products' }),
});
: 나는 다음과 같은 두 가지 모델을 가지고 이처럼 내 datas :
const paperwork = server.create('paperwork');
const paperworkProduct = server.create('paperwork-product', { paperwork });
paperwork.paperwork_products.add(paperworkProduct);
내 경로 :
export default ApplicationRoute.extend({
model(params) {
return this.store.findRecord('paperwork', params.paperwork_id, { include: 'paperwork_products' }),
},
});
문제는 내 템플릿에서 서류 작업. 서류 작업 제품에 액세스 할 수 없다는 것입니다. 그것은 정의되지 않았습니다 (다른 서류 작업의 속성은 여기에 있지만 관계는 아닙니다). 경로가 선언 될 때 이미 mirage/config.js에 디버거를 넣으려고했습니다. 내 서류가 존재하고, 그의 "서류 작업 제품들"도 있습니다. 하지만 템플릿에 서류 작업 제품 데이터를 가져올 수 없습니다. 내가 뭘 잘못하고 있니? 나는 내에서 뭔가를 변경해야합니다 생각 :
this.get('v1/paperworks/:id');
그러나 나는 무엇을 모른다 ... 사전에 감사!
편집 :
모델/
export default DS.Model.extend({
customer: DS.belongsTo('customer'),
paperwork_products: DS.hasMany('paperwork-product', { async: true }),
});
모델/서류 - product.js는
export default DS.Model.extend({
paperwork: DS.belongsTo('paperwork'),
});
어제 내가 진짜를 비교하기 위해 노력 paperwork.js : 여기 내 진짜 엠버 모델은 JsonApi의 응답과 미라지 응답을 비교해 보았습니다. 관계 해시에서 관계 "서류 작업 제품"이 서류 작업 제품 (미라지 포함)으로 변경되었습니다. 그래서 대시가있는 밑줄이나 모델과의 관계에 문제가 있습니다. config.js에서 JSONAPI 백엔드를 모의하려고했지만 잘 작동합니다.
"relationships":{
"customer":{
"data":{
"type":"customers",
"id":"1"
}
},
"paperwork-products":{
"data":[
{
"type":"paperwork-products",
"id":"1"
}
]
}
}
가되어야한다 : hasMany의 관계와
"relationships":{
"customer":{
"data":{
"type":"customers",
"id":"1"
}
},
"paperwork_products":{
"data":[
{
"type":"paperwork_products",
"id":"1"
}
]
}
}
내 다른 모델은 어떤 문제가 발생하지 않습니다 그냥 "paperwork_products"
미라지 응답으로 "서류-제품을"대체했다.
나는 내 메인 포스트를 편집했다. 나는 다른 세부 사항을 추가했다. 귀하의 답변에 감사드립니다. – Seybol