Ember 数据与 Rails JSON 响应不兼容:遇到了未定义类型的资源

Ember Data incompatible with Rails JSON response: Encountered a resource with an undefined type

我正在尝试设置 Ember 数据以与 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')
});

下面是后端 returns 数据以及来自 Ember 的错误的图像:

错误:Encountered a resource with an undefined type.

我不需要在我的 Ember 模型中包含 created_atupdated_at,对吗?另外,Ember 如何知道将 user_id 与我的 User Ember 模型连接起来?那是导致错误的原因吗?不过,我将 user_id 指定为 belongTo('user')。我是否需要在 JSON 响应中明确包含 type 字段?不过这似乎不对。

我已经阅读了几本 Ember 指南,包括他们的 guide on models and their guide on serializers。我不需要编写自定义 JSONAPISerializer,对吗?我阅读的大多数指南都没有说要这样做。任何帮助和提示将不胜感激!

根据 JSONAPI 规范,您的 JSON 响应应包含一个 "type" 字段。这是我的 rails 应用程序中的 JSON 的样子:

{"data":{"attributes":{"title":"asdf","body":"adsf"},"type":"posts"}}

您是否在 rails 端使用 Active Model Serializers,您是否将其配置为使用 JSONAPI 渲染器?

您所要做的就是在初始化程序中设置 ActiveModelSerializers.config.adapter

# config/initializers/jsonapi.rb
ActiveModelSerializers.config.adapter = :json_api

它应该自动包含 type 字段。

如果您仍有问题,我想如果您分享一些您的 rails 代码,我可以提供帮助。