【问题标题】:JSONAPISerializer not returning underscore case to APIJSONAPISerializer 不向 API 返回下划线大小写
【发布时间】:2015-09-23 23:55:48
【问题描述】:

我正在尝试通过返回来检索单个记录

singleGroup: this.store.findRecord('individual_group', group_id)

然后我在控制台中收到此错误:

GET http://localhost:4200/api/v1/individual-groups/349 404 (Not Found)

似乎将individual_groups 改成individual-groups

现在在 API 文档中,通过向 api/v1/individual_groups/:id 发出 GET 请求可以找到一个单独的组

我正在使用JSONAPIAdapter 并且已经设置了一个序列化程序:

export default DS.JSONAPISerializer.extend({
    keyForAttribute: function(attr) {
        return Ember.String.underscore(attr);
    },
    keyForRelationship: function(attr) {
        return Ember.String.underscore(attr);
    }
});

但它似乎不会影响这种特殊情况。

有没有办法确保当我调用 this.store.findRecord('individual_group', group_id) 时,它会向 API 发出请求

GET http://localhost:4200/api/v1/individual_groups/349

而不是

GET http://localhost:4200/api/v1/individual-groups/349

【问题讨论】:

    标签: ember.js ember-data json-api


    【解决方案1】:

    你应该重新定义pathForTypeadapter methoddefault implementation 使用 dasherize:

      //as is
      pathForType: function(modelName) {
        var dasherized = Ember.String.dasherize(modelName);
        return Ember.String.pluralize(dasherized);
      }
    
      //to be
      pathForType: function(modelName) {
        var underscored = Ember.String.underscore(modelName);
        return Ember.String.pluralize(underscored);
      }
    

    【讨论】:

    • 这解决了这个问题。谢谢!
    猜你喜欢
    • 2010-12-03
    • 2021-04-27
    • 1970-01-01
    • 2018-03-24
    • 2016-08-07
    • 2015-03-30
    • 1970-01-01
    • 2016-03-25
    • 1970-01-01
    相关资源
    最近更新 更多