Rails使用依赖destroy和依赖nullify时

时间:2013-08-13 10:08:10

标签: sql database ruby-on-rails-3

我想知道rails上的依赖关系的destroy和依赖的nullify以及与SQL的关系。

由于

3 个答案:

答案 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

的更多详情