У нас есть сценарий, когда встроенная запись встроенной записи возвращает ноль.
Цепочка отношений выглядит следующим образом:
userProfile
--belongsTo -> organisation
--hasOne (т.е. принадлежит) -> jurisdiction
.
Тем не менее, при извлечении всех записей userProfile
юрисдикция остается незаполненной.
Пока что соответствующие сериализаторы и модели выглядят так:
UserProfile
Модель
organisation: belongsTo('organisation', { async: false }),
Serializer
attrs: {
'organisation': { embedded: 'always' },
...
},
Организация
Модель
userProfile: hasMany('userProfile', { async: false }),
jurisdiction: belongsTo('jurisdiction', { async: false }),
Serializer
attrs: {
...
'jurisdiction': { embedded: 'always' },
},
Юрисдикция
Модель
organisation: belongsTo('organisation', { async: false }),
Serializer
attrs: {
...
area: { key: 'jurisdictionArea' },
name: { key: 'jurisdictionName' },
},
Я полагаю, что проблема может заключаться в том, что эта часть API не соответствует спецификации JSON API, в качестве примера userProfile
ответ может выглядеть следующим образом:
...
organisation: {
jurisdictionArea: "TAU"
jurisdictionId: "82cfda0b-3180-41cf-b0fa-b1193655bc0b"
organisationId: "960d4ec2-bc90-11e8-a355-529269fb1459"
}
Я думаю, что это может быть решено с помощью методов normalizeResponse
или serializeBelongsTo
в сериализаторе organisation
, однако мои попытки пока не увенчались успехом. Любой совет о том, как решить эту проблему, был бы очень умиротворен.