api调用在url中使用破折号而不是下划线

时间:2017-04-30 17:00:42

标签: ember-data

在我的公司,我们正在重写大型rails应用程序以使用rails 5 api only模式,我正在评估ember.js作为可能的前端,用于单独的应用程序并由nginx的。我在localhost的测试中遇到了一个问题,我希望你可以建议修复或补丁。

// app / adapters / application.js

import DS from 'ember-data';
import DataAdapterMixin from 'ember-simple-auth/mixins/data-adapter-mixin';
import config from '../config/environment';

export default DS.JSONAPIAdapter.extend(DataAdapterMixin, {
host: ${config.host},
authorizer: 'authorizer:jwt',
namespace: 'api/v1'
});

// app / models / device-profile.js

import DS from 'ember-data';

export default DS.Model.extend({
name: DS.attr('string'),
devices: DS.hasMany('device'),
assignedFlags: DS.hasMany('assigned-flag'),
deviceProfileGpios: DS.hasMany('device-profile-gpio')
});

// app / routes / device-profiles.js

import Ember from 'ember';

export default Ember.Route.extend({
model() {
return this.store.findAll('device-profile')
}
});

当我转到http://localhost:4200/device-profiles时,我在rails控制台中收到以下404错误

Started GET "/api/v1/device-profiles" for ::1 at 2017-04-30 08:10:30 -0400

ActionController::RoutingError (No route matches [GET] "/api/v1/device-profiles"):

是否有一些我缺少的设置或这是一个错误?

1 个答案:

答案 0 :(得分:0)

管理以找到关于ember data github site

的问题的答案

我将此添加到我的应用程序适配器

pathForType: function(type) {
    var underscored = Ember.String.underscore(type);
    return Ember.String.pluralize(underscored);
}