4

我正在尝试设置 REST 模型,但遇到一个让我完全困惑的问题:生成的 API 调用似乎删除了模型的第一个字母,因此无法检索数据(出现 404 错误)。

我首先设置商店:

App.Store = DS.Store.extend({
    revision: 11,
    adapter: DS.RESTAdapter.reopen({
        namespace: 'api/admin'
    })
});

然后我设置了一个模型(在 REST 服务上称为“dbx_tables”:

App.dbxTable = DS.Model.extend({
    name: "string",
    db_column: "string"
});

然后是路线:

App.DbxRoute = Ember.Route.extend({
    model: function() {
        return App.dbxTable.find();
    }
});

我已经打开了转换的记录:

App = Ember.Application.create({
    LOG_TRANSITIONS: true
});

所以当我启动应用程序时,它首先转换到“关于”页面,然后我点击到“dbx”视图(我不知道为什么它说,dbx.index而不仅仅是dbx):

DEBUG: ------------------------------- ember-1.0.0-rc.1.js:339
DEBUG: Ember.VERSION : 1.0.0-rc.1      ember-1.0.0-rc.1.js:339
DEBUG: Handlebars.VERSION : 1.0.0-rc.3 ember-1.0.0-rc.1.js:339
DEBUG: jQuery.VERSION : 1.9.1          ember-1.0.0-rc.1.js:339
DEBUG: ------------------------------- ember-1.0.0-rc.1.js:339
Transitioned into 'about'              ember-1.0.0-rc.1.js:339
Transitioned into 'dbx.index'          ember-1.0.0-rc.1.js:339
GET http://lifegadget-local/api/admin/bx_tables 404 (Not Found) jquery-1.9.1.js:8526

注意bx_tablesAPI 调用中的引用。前导的“d”是如何被删除的?我也不确定为什么它使电话多元化,尽管这很容易符合惯例,所以并不真正担心这一点。

4

2 回答 2

6

我遇到过同样的问题。我的问题是:

this.get('store').findAll('user');   

需要改为:

this.get('store').findAll('User');   
于 2013-10-12T02:37:42.633 回答
1

好的,看起来我犯了一个“约定错误”,并且模型缺少大写是导致问题的原因。所以通过切换App.dbxTableApp.DbxTable我现在已经解决了这个问题。

于 2013-03-31T21:38:35.517 回答