2016-07-11 7 views
0

私はproductモデルと/products/ルートを持っていますが、エバーデータはhost/api/v1/productsの代わりにhost/api/v1/productにリクエストを送信します - これはなぜですか?Emberデータ複数シリアライザ

また、個々の製品フェッチに複数のエンドポイントを使用するにはどうすればよいですか?すなわち:host/api/v1/product/1

答えて

1

チェックbuildURL方法

By default, it pluralizes the type's name (for example, 'post' 
becomes 'posts' and 'person' becomes 'people'). To override the 
pluralization see [pathForType](#method_pathForType). 

とサブ方法(https://github.com/emberjs/data/blob/v2.6.1/addon/-private/adapters/build-url-mixin.js#L54

switch (requestType) { 
    case 'findRecord': 
    return this.urlForFindRecord(id, modelName, snapshot); 
    case 'findAll': 
    return this.urlForFindAll(modelName, snapshot); 
    case 'query': 
    return this.urlForQuery(query, modelName); 
    case 'queryRecord': 
    return this.urlForQueryRecord(query, modelName); 
    case 'findMany': 
    return this.urlForFindMany(id, modelName, snapshot); 
    case 'findHasMany': 
    return this.urlForFindHasMany(id, modelName, snapshot); 
    case 'findBelongsTo': 
    return this.urlForFindBelongsTo(id, modelName, snapshot); 
    case 'createRecord': 
    return this.urlForCreateRecord(modelName, snapshot); 
    case 'updateRecord': 
    return this.urlForUpdateRecord(id, modelName, snapshot); 
    case 'deleteRecord': 
    return this.urlForDeleteRecord(id, modelName, snapshot); 
    default: 
    return this._buildURL(modelName, id); 
} 

のリストがありますので、あなたの目的

0

Updateのいずれかを再定義することができます下のアダプタ:

import JSONAPIAdapter from 'ember-data/adapters/json-api'; 

export default JSONAPIAdapter.extend({ 
    pathForType: function(type) { 
     var camelized = Ember.String.camelize(type); 
     return Ember.String.singularize(camelized); 
    } 
}); 
関連する問題