ember data 1.13.8 和 ember cli mirage 混淆

ember data 1.13.8 and ember cli mirage confusion

这是我的 Ember 检查员信息选项卡:

我正在使用 ember-cli-mirage,但我遇到了问题。

我无法获得模型的 belongsTo 关系。当我执行 car.get('user') 时,我得到了一个结果承诺,但该值始终是 null.

我的用户模型 从 'ember-data';

导入 DS
export default DS.Model.extend({
  name: DS.attr('String'),
  car: DS.belongsTo('car',{async: true})
});

我的车型

import DS from 'ember-data';

export default DS.Model.extend({
  color: DS.attr('String'),
  user: DS.belongsTo('user',{async: true})
});

我的mirage/config

  this.get('/cars',function(db,request) {
    var qp = request.queryParams.searchString.toLowerCase();
    return {
      cars: db.cars.where({'color':qp}),
      users: db.users
    };
  });

我得到了带有搜索颜色的汽车列表,但我没有得到用户。 它 returns 一个承诺,当 fullfilled 给出 null。

因为我使用的是ember-data 1.13.8

我尝试使用这个 Mirage working with json 但后来出现错误 基准模型未定义错误所以我猜新的 json api 不是我的问题出于某种原因我的 ember 数据使用旧的 json 格式和原始配置工作。

this.get('/cars', function(db, request) {
  return {
    data: db.cars.map(attrs => (
      {type: 'cars', id: attrs.id, attributes: attrs }
    ))
  };
})

我的汽车路线是这样的

 model: function(params) {
    self = this;
    if(!params){
        return [];
    }
    return this.store.findQuery('car',params);
  },

我试过了

return this.store.findQuery('car',params).then(function(item){
      console.log(item.get('user'));
    });

但我还是得到了console.log //undefined

我可以在返回的 json 中看到 user_id。

解决方案: 发现我将关系保存为 user_id = user.id. 的问题应该是 user=user.id

解决方案:发现我将关系保存为 user_id = user.id 的问题。应该是user=user.id