如何将带有破折号的序列化类型转换为斜线结构模型?

How translate serialize type with dash to model slashed structure?

My API in Rails with AMS (JSON:API) return from serializer the type name with dash (artemis-forum-disputes ),但在我使用 Ember 的前端应用程序中,我使用子目录结构 (artemis/forum/disputes) 存储我的模型。

WARNING: Encountered a resource object with type "artemis-forum-disputes", but no model was found for model name "artemis-forum-dispute" (resolved model name using 'apollo-enterprise@serializer:application:.modelNameFromPayloadKey("artemis-forum-disputes")').

如何解决?谢谢

您可以通过重写序列化程序上的 modelNameFromPayloadType 方法来告诉 Ember Data 使用哪个模型。如果您在应用程序序列化程序中覆盖该方法并将破折号转换为斜线 Ember 应该能够在子目录中找到您的模型。

// app/serializers/application.js 
// or app/application/serializer.js
import DS from 'ember-data'
export default DS.JSONAPISerializer.extend({
  modelNameFromPayloadType(payloadType) {
    return payloadType.replace(/-/g, '/');
  }
});