Active Record 操作:删除、回调与事务详解
1. 行删除方法
Active Record 支持两种风格的行删除方式:
1.1 数据库级删除方法
-
delete()方法 :接受单个 ID 或 ID 数组,直接在底层表中删除相应的行。 -
delete_all()方法 :删除符合给定条件的行,如果未指定条件,则删除所有行。这两个方法的返回值取决于适配器,通常是受影响的行数。如果要删除的行在调用前不存在,不会抛出异常。
示例代码如下:
Order.delete(123)
User.delete([2,3,4,5])
Product.delete_all(["price > ?", @expensive_price])
1.2 通过模型对象删除方法
-
destroy()实例方法 :删除与特定模型对象对应的数据库行,然后冻结该对象的内容,防止后续对属性进行更改。
order = Order.find_by(name: "Dave")
order.destroy
# ... order 现在已被冻结
超级会员免费看
订阅专栏 解锁全文
31

被折叠的 条评论
为什么被折叠?



