通过中间模型加紧加载

我有3个模型:

ModelA,ModelB和ModelC

  • ModelA属于多个ModelB(n:m)
  • ModelB属于多个ModelA(m:n)
  • ModelB属于ModelC(n:1)
  • ModelC有许多ModelB(1:n)

我需要获得ModelA的所有ModelC(通过ModelB)

我相信是这样的,但我不能得到它的工作,当一个through续集创build协会创造怪异foreignKeys和关于这个话题的续集文件是非常不完整的,我的味觉

 ModelA.findOne({ where: ..., include: [ { model: ModelC, through: ... } ] }); 

编辑:我改变了所有的实体模型A,B,C,因为这是一个关于Sequelize API的问题/问题; 不是关于数据库/模型devise

您的User模型与您的Company模型没有直接关系,但您可以使用嵌套包含以下内容获取Company通过Role

 User.findOne({ where: ..., include: [ { model: Role, include: [ { model: Company, ... } ] } ] });