Sails.js 具有强制一对多关系的级联错误

Sails.js 具有强制一对多关系的级联错误,sails.js,Sails.js,我使用的是Sails 1.1.0。我使用sails disk和sails mongo适配器尝试了以下操作 我创建了一个强制性的一对多关系。Sofa有所有者,这是一对多对用户,Sofa还有一个主页,这是一对多对主页。然而当我等待回家的时候。销毁(homeId)主页,它不会级联并删除沙发。相反,我得到了一个错误: PropagationError: Failed to run the "cascade" polyfill. Could not propagate the potential des

我使用的是Sails 1.1.0。我使用
sails disk
sails mongo
适配器尝试了以下操作

我创建了一个强制性的一对多关系。
Sofa
所有者
,这是一对多对
用户
Sofa
还有一个
主页
,这是一对多对
主页
。然而当我等待回家的时候。销毁(homeId)主页,它不会级联并删除沙发。相反,我得到了一个错误:

PropagationError: Failed to run the "cascade" polyfill.  Could not propagate the potential destruction of this home record.
Details:
  Cannot wipe the contents of association (`sofas`) because there is one conflicting shame record whose `home` cannot be set to `null`.  (That attribute is required.)

This error originated from the fact that the "cascade" polyfill was enabled for this query.
Tip: Try reordering your .destroy() calls.
 [?] See https://sailsjs.com/support for more help.
以下是我的模型关联:

// api\models\Sofa.js

    owner: {
      model: 'user',
      required: true
    },

    home: {
      model: 'home',
      required: true
    },

// api\models\User.js    

        sofas: {
           collection: 'sofa',
           via: 'owner'
        },

// api\models\Home.js    

        sofas: {
           collection: 'sofa',
           via: 'home'
        },

有人知道为什么会发生这种情况吗?

如果改用
.archive()
你会得到同样的结果吗?在你的
config/locals/modals.js
中,你有没有
cascadondestory:true
?你有没有解决过这个问题,看看casade的文档,它说“因此删除了一个具有双向复数关联的记录?”(一对多或多对多)还将干净地删除指向其他记录的所有链接(通过删除联接表行或将外键值设置为null)。我想冒昧地猜测一下,在您的情况下,它只是试图将Sofa中的外键设置为null,这会引发您的错误。虽然不理想,但您可以添加beforeDestroy生命周期回调来为您执行删除过程。我相信这是在sails版本<1时处理此问题的唯一方法。是的,因此进一步挖掘在Sails中,我相信它如我所想的那样工作,cascade正在尝试将沙发中的Home reference设置为null。我正在考虑另一个解决方案,您是否可以从沙发中的Home reference中删除
required:true
,然后触发一个清理操作,删除所有Home reference为null的沙发。哈哈,我靠moto生活“如果它没有坏,修理它直到它坏为止”。