正在创建具有关联但未指定id的新模型



我可以创建一个已经存在城市模型的用户模型吗?

例如:

var User = this.sequelize.define('User', {name: String})
var City = this.sequelize.define('City', {name: String})
User.belongsTo(City);

现在假设我已经在数据库中有一个记录,类似于:

| Id | Name   |
|----|--------|
| 1  | York   |
| 2  | London |

我习惯于创建居住在伦敦的新用户。

什么是最好的方法?

我试过了:

User.create({name: 'John', City: 'London'}, {include: [City]})

但是出现了一个错误:cityId没有默认值。

我尽量避免先检索cityId。

感谢

自动定义的setXXX函数是实现这一点的最佳方法:

User.create({ user_field_1: 'foo', user_field_2: 'bar' })
.then(function(new_user) {
  new_user.setCity(someCityInstance);
});

如果您没有实例,但知道要关联的City实例的密钥,那么在创建时直接指定它可能会起作用:

User.create({ user_field_1: 'foo', user_field_2: 'bar', city_id: 'xyz' });

最新更新