尝试在 ember 中创建一对一关系时出错.js



我正在尝试在余烬中创建帐户和用户模型之间的一对一关系。当我创建模型时,我被抛出错误

不能再将 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 文档中列出的代码一致。 我还能够写入我的后端数据库,即使使用这个损坏的代码。以前有没有人遇到过此错误/知道如何解决它?

这可能是

因为您将accountuser设置为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提供模型参考,则可以简化此操作。

最新更新