有两种型号:
sequelize.define('Hotel', {
id: {
autoIncrement: true,
type: DataTypes.INTEGER,
primaryKey: true
},
latitude: {
type: DataTypes.DOUBLE,
allowNull: false
},
longitude: {
type: DataTypes.DOUBLE,
allowNull: false
},
title: {
type: DataTypes.STRING,
allowNull: false
},
description: {
type: DataTypes.TEXT,
allowNull: false
},
rating: {
type: DataTypes.DOUBLE,
defaultValue: 0
},
image: {
type: DataTypes.STRING
}
}, {
classMethods: {
associate: function(db) {
Hotel.hasMany(db.Comment, {
foreignKey: 'commentable_id',
scope: {
commentable: 'hotel'
}
});
}
}
});
和
sequelize.define('Comment', {
id: {
type: DataTypes.INTEGER,
primaryKey: true
},
content: {
type: DataTypes.TEXT,
allowNull: false
},
commentable: DataTypes.STRING,
commentable_id: DataTypes.INTEGER
});
如何为现有酒店实例创建关联的评论?例如,我尝试过:
hotel.addComment(request.models.Comment.create({content: 'content'}))
但它不起作用。请告诉我,我该如何解决?提前谢谢!
答案 0 :(得分:0)
request.models.Comment.create()是异步的,换句话说,它返回一个必须填充的承诺,然后才能使用已解析的值来提供' feed' addComment方法。
所以你应该做类似
的事情request.models.Comment.create({content: 'content'}).
then(function(comment){
return hotel.addComment(comment);
});