rails中active_record的delete和destroy方法

本文探讨了Rails框架中ActiveRecord对象的delete与destroy方法之间的关键差异:delete方法不使用事务且不会触发回调,而destroy则相反。文章还提到了关联的delete_all与destroy_all方法及update_columns与update_attributes方法的类似差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

rails对删除一个active_record对象有两个方法: obj.delete和obj.destroy方法,但是两种方法是有差别的。
delete方法不是在事务里进行删除,也不会触发active_record的回调。而destroy是在事务里处理,并且会触发active_record的回调。
这里写图片描述

所以要慎用delete。
延伸一下:
1. relation的delete_all和destroy_all同样也会有这样的区别。
2. update_colums和update_attributes同样。
这里记录一下,避免忘记。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值