ember-dev-fixtures ERROR: "Assertion Failed: The response from a findAll must be an Array, not undefined"

ember-dev-fixtures ERROR: "Assertion Failed: The response from a findAll must be an Array, not undefined"

我正在使用名为 ember-dev-fixtures 的 ember 插件,当我尝试获取数组时它抛出一个错误,说它不是一个。蓝图的配置方式是这样的:

夹具/模型名称.js

export default [
  /*{
    id: 1, // all fixtures must have an ID
    title: 'test',
    user: 2, // if it is a relation, put the ID of the related record
    createdAt: '2015-01-26T09:22:17.657Z'
  }*/
];

我在网上到处搜索,除了我之外似乎没有人对这个插件有问题,所以我想我会 post 在这里。这似乎是一个非常简单的插件,并且 Ember 通常会在 json 格式不正确时抛出该错误。如您所见,我已将 json 格式化为插件蓝图所需的格式,但我仍然没有运气。下面你会看到我的 fixtures 文件,它在我的应用程序目录之外的根目录中,正如它应该是的那样。此外,我已经包括了我的模型和我的路线,因为看起来那些是抱怨并且有可能不正确的两个。这真的是在黑暗中开枪,因为我假设很多人没有使用过这个框架,甚至更少使用过这个特定的插件。非常欢迎任何建议。

fixtures/state.js

export default [
  {id: 1, state: 'Alabama', url: 'http://upload.wikimedia.org/wikipedia/commons/5/5c/Flag_of_Alabama.svg', symbol: 'AL'},
  {id: 2,state: 'Alaska', url: 'https://upload.wikimedia.org/wikipedia/commons/e/e6/Flag_of_Alaska.svg', symbol: 'AK'},
  {id: 3,state: 'Arizona', url: 'https://upload.wikimedia.org/wikipedia/commons/9/9d/Flag_of_Arizona.svg', symbol: 'AZ'},
  {id: 4,state: 'Arkansas', url: 'https://upload.wikimedia.org/wikipedia/commons/9/9d/Flag_of_Arkansas.svg', symbol: 'AR'},
  {id: 5,state: 'California', url: 'https://upload.wikimedia.org/wikipedia/commons/0/01/Flag_of_California.svg', symbol: 'CA'},
  {id: 6,state: 'Colorado', url: 'https://upload.wikimedia.org/wikipedia/commons/4/46/Flag_of_Colorado.svg', symbol: 'CO'},
  {id: 7,state: 'Connecticut', url: 'https://upload.wikimedia.org/wikipedia/commons/9/96/Flag_of_Connecticut.svg', symbol: 'CT'},
  {id: 8,state: 'Delaware', url: 'https://upload.wikimedia.org/wikipedia/commons/c/c6/Flag_of_Delaware.svg', symbol: 'DE'}
..........
];

routes/select-state.js

import Ember from 'ember';

export default Ember.Route.extend({
    model: function () {
      return this.store.find('state');
    }
});

models/state.js

import DS from 'ember-data';

export default DS.Model.extend({
  state: DS.attr('string'),
  url: DS.attr('string'),
  symbol: DS.attr('string')
});

尝试使用 findAll 而不是仅查找。由于您使用的是数组,因此您应该 return 仅数组而不是单个对象。

在文件中-routes/select-state.js

  return this.store.findAll('state');

此错误已在 0.0.7 中修复。问题发布在这里:github.com/huafu/ember-dev-fixtures/issues/1