2016-08-24 26 views
2

私はUserという名前のモデルを持っています。他のモデルのAdmin/modをUserモデルから拡張することはできますか?続編の文書が見つかりましたが、私は見つけませんでしたORMの後遺症は多型性がありますか?

+0

。主な議論はhttps://github.com/sequelize/sequelize/issues/1307にあります。 – iwasrobbed

答えて

2

はい、Associations documentation、またはそれ以上をScopes documentationでチェックしてください。ドキュメントから

:それは本当に、この時点でサポートされていないが、Sequelizeを用いて同様の構造を行うには、いくつかの方法がある

this.Comment = this.sequelize.define('comment', { 
    title: Sequelize.STRING, 
    commentable: Sequelize.STRING, 
    commentable_id: Sequelize.INTEGER 
}); 

this.Comment.prototype.getItem = function() { 
    return this['get' + this.get('commentable').substr(0, 1).toUpperCase() + this.get('commentable').substr(1)](); 
}; 

this.Post.hasMany(this.Comment, { 
    foreignKey: 'commentable_id', 
    constraints: false, 
    scope: { 
    commentable: 'post' 
    } 
}); 
this.Comment.belongsTo(this.Post, { 
    foreignKey: 'commentable_id', 
    constraints: false, 
    as: 'post' 
}); 

this.Image.hasMany(this.Comment, { 
    foreignKey: 'commentable_id', 
    constraints: false, 
    scope: { 
    commentable: 'image' 
    } 
}); 
this.Comment.belongsTo(this.Image, { 
    foreignKey: 'commentable_id', 
    constraints: false, 
    as: 'image' 
});