我想了解关系依赖销毁和依赖无效化在轨道上以及与 SQL 的关系。
谢谢
示例:餐桌用户和餐桌车
用户有很多车车属于用户
在 table car 中,每行都有 user_id
如果您在定义用户关系时设置了依赖销毁,那么当您删除一个用户时,所有具有该 user_id 的汽车也将被删除
如果您设置 nullify,汽车将保留,但 user_id 列将设置为 null(因为具有该 id 的用户已被删除,所以在那里有任何值是没有意义的)
希望这会有所帮助
当我们想要摆脱孤立记录时,您可以使用依赖,因为它们会导致各种问题。当我们删除或销毁与模型 B 关联的模型 A 时,会创建孤立记录,但在此过程中并未删除模型 B。
您最常想使用destroy - 所有关联的对象都会被一一删除。其他常见的选项是:
:delete_all
– 所有关联对象将在单个查询中删除。
:nullify
– 外键将设置为 NULL
您可以在此处查看有关此内容的更多详细信息。
当您想要摆脱孤立记录时,您可以使用这些选项。最常用的是destroy
因为它会一一删除所有关联的对象。