我正在尝试在余烬中创建帐户和用户模型之间的一对一关系。当我创建模型时,我被抛出错误
不能再将 modelClass 作为第一个参数传递给 store.buildInternalModel。改为传递模型名称。 错误
我的模型:
import DS from 'ember-data';
export default DS.Model.extend({
email: DS.attr('string'),
account: DS.belongsTo('account')
});
import DS from 'ember-data';
export default DS.Model.extend({
user_name: DS.attr('string'),
content_type: DS.attr('string'),
creator: DS.attr('boolean'),
user: DS.belongsTo('user')
});
路由/创建帐户.js中的帐户创建操作:
createAccount (params) {
let current_user = this.get('auth.credentials.id');
let account = this.get('store').createRecord('account', params);
account.set('user', user);
account.save();
},
我不知道此错误是什么意思或如何解决它。更糟糕的是,我的代码与 ember 文档中列出的代码一致。 我还能够写入我的后端数据库,即使使用这个损坏的代码。以前有没有人遇到过此错误/知道如何解决它?
因为您将account
的user
设置为user
的 ID,而不是user
模型对象。您的操作可能应该被重构以获取user
模型对象,然后将其设置为account
。像这样:
createAccount(params) {
const store = this.get('store');
const currentUserId = this.get('auth.credentials.id');
store.findRecord('user', currentUserId).then((user) => {
params['user'] = user;
store.createRecord('account', params).save();
});
}
当然,如果auth
服务也可以为登录user
提供模型参考,则可以简化此操作。