【发布时间】:2026-01-22 09:15:01
【问题描述】:
这是我的 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})
});
我的海市蜃楼/配置
this.get('/cars',function(db,request) {
var qp = request.queryParams.searchString.toLowerCase();
return {
cars: db.cars.where({'color':qp}),
users: db.users
};
});
我得到了带有搜索颜色的汽车列表,但我没有得到用户。 它返回一个 Promise,当它完成时返回 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
-
您应该将此作为答案发布在此问题中,并将您的答案标记为已接受。这样每个人都会知道您找到了解决方案,并且问题将不再被标记为未回答。 :)