浪迹天涯的游子 发表于 2023-9-14 12:00:32

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]
查看完整版本: Destroy and Delete之间的区别