我想知道rails上的依赖关系的destroy和依赖的nullify以及与SQL的关系。
由于
答案 0 :(得分:3)
实施例: 表用户和桌面车
用户有很多车 汽车属于用户
在表格车中,每行都有user_id
如果在用户中定义关系时设置依赖销毁,那么当您删除用户时,具有该user_id的所有车辆也将被删除
如果你设置nullify,汽车将保留,但user_id列将被设置为null(因为具有该id的用户被删除,所以没有任何值是没有意义的)
希望这有帮助
答案 1 :(得分:0)
当您想要删除孤立记录时,可以使用这些选项。
最常用的是destroy
,因为它会逐个删除所有关联的对象。
答案 2 :(得分:0)
当我们想要摆脱孤立记录时,你可以使用依赖,因为它们可能导致各种问题。当我们删除或销毁与模型B关联的模型A时会创建孤立记录,但模型B在此过程中未被删除。
您最常使用destroy - 所有关联的对象将逐个删除。 其他常见的选择是:
:delete_all
- 将在一个查询中删除所有关联的对象。
:nullify
- 外键将设置为NULL
您可以查看有关this here。
的更多详情