Данные Ember несовместимы с ответом JSON Rails: обнаружен ресурс с неопределенным типом
Я пытаюсь настроить Ember Data для связи с бэкэндом Rails. Ember успешно вызывает конечную точку, получает как 200, так и некоторые данные ответа. Проблема в том, что Ember не может сопоставить данные ответов с одной из моих моделей Ember, которые я сделал.
Код моей модели:
export default DS.Model.extend({
user_id: DS.belongsTo('user'),
transcription: DS.attr('string'),
transcription_time: DS.attr('date'),
transcription_date: DS.attr('date'),
recording_url: DS.attr('string'),
state: DS.attr('string')
});
Ниже приведено изображение того, как сервер возвращает данные вместе с ошибкой от Ember:
Ошибка: Encountered a resource with an undefined type.
Мне не нужно включать created_at
или же updated_at
в моих моделях Ember я делаю? Кроме того, как Эмбер знает, как подключиться user_id
со мной User
Эмбер модель? Это то, что вызывает ошибку? Я уточнил user_id
в belongTo('user')
хоть. Нужно ли явно включать type
поле в моем ответе JSON? Это не кажется правильным, хотя.
Я прочитал несколько руководств Ember, включая руководство по моделям и руководство по сериализаторам. Мне не нужно писать собственный JSONAPISerializer, не так ли? Большинство руководств, которые я прочитал, не говорили об этом. Любая помощь и советы будут с благодарностью!
1 ответ
Ваш ответ JSON должен содержать поле типа, в соответствии со спецификацией JSONAPI. Вот как выглядит JSON из моего приложения rails:
{"data":{"attributes":{"title":"asdf","body":"adsf"},"type":"posts"}}
Используете ли вы Serializer Active Model на стороне рельсов, и вы настроили его для использования рендерера JSONAPI?
Все, что вам нужно сделать, это установить ActiveModelSerializers.config.adapter
в инициализаторе:
# config/initializers/jsonapi.rb
ActiveModelSerializers.config.adapter = :json_api
Это должно включать type
поле автоматически.
Если у вас все еще есть проблемы, я думаю, что если вы поделитесь своим кодом, я могу помочь.