Destroy and Delete之间的区别
两者有什么区别?@model.destroy 和 @model.delete例如:
Model.find_by(col: "foo").destroy_all//andModel.find_by(col: "foo").delete_all用一个或者另一个真的有关系吗?
解决方案:
基本上destroy在模型上运行任何回调delete其实不运行。
从Rails API中:
ActiveRecord::Persistence.delete删除数据库中的记录并冻结实例,以反映不应进行任何更改(因为它们不能长期保存)。返回冻结实例。
只需在记录的主键上使用SQL DELETE如果句子被删除,则不会执行任何回调。
强制执行对象before_destroy和after_destroy回调或任何:dependent请使用相关选项#destroy。
ActiveRecord::Persistence.destroy删除数据库中的记录并冻结实例,以反映不应进行任何更改(因为它们不能长期保存)。
有一系列与destroy相关回调before_destroy回调返回false,取消操作,destroy返回false。详情请参见ActiveRecord :: Callbacks。
页:
[1]