Sails.js 销毁具有一对一关联的实例

Sails.js destroy instance with one-to-one associations

我正在研究一个模型,该模型具有一对一和单向关联的几个属性。当我销毁该主模型的一个实例时,它是否也会销毁关联的实例?

如果没有,那么方便的方法是什么?

目前Waterline不支持级联删除记录。 现在这样做的一种相对干净的方法是向您的模型添加一个 afterDestroy 挂钩。

// Pet.js
module.exports = {
  attributes: {
    owner: {
      model: 'person'
    }
  }
}

// Person.js
module.exports = {
  attributes: {
    pet: {
      model: 'pet'
    }
  },

  afterDestroy: function(deletedRecords, next) {
    async.each(deletedRecords, function(person, cb) {
        Pet.destroy({owner: person.pet}, cb);
      }
    ], next);
  }
}

每次删除 Person 条记录时,afterDestroy 函数将 运行。如果你想在删除宠物时也删除人,你需要在 Pet 模型中做同样的事情。