如何删除ActiveRecord对象?
我看了Active Record Querying,它没有删除任何我能看到的内容 .
删除 id ,
id
删除当前对象,如: user.remove ,
user.remove
可以根据 where 子句删除吗?
where
这是 destroy 和 destroy_all 方法,比如
destroy
destroy_all
user.destroy User.find(15).destroy User.destroy(15) User.where(age: 20).destroy_all User.destroy_all(age: 20)
或者,您可以使用 delete 和 delete_all ,它不会强制执行 :before_destroy 和 :after_destroy 回调或任何从属关联选项 .
delete
delete_all
:before_destroy
:after_destroy
User.delete_all(condition:'value')将允许您删除没有主键的记录
有 delete , delete_all , destroy 和 destroy_all .
文档是:older docs和Rails 3.0.0 docs
delete 不实例化对象,而 destroy 则实例化 . 通常, delete 比 destroy 快 .
User.destroy
User.destroy(1) 将删除用 id == 1 和 :before_destroy 和 :after_destroy 回调的用户 . 例如,如果您有相关记录
User.destroy(1)
id == 1
has_many :addresses, :dependent => :destroy
用户被销毁后,他的地址也将被销毁 . 如果您使用删除操作,则不会发生回调 .
User.destroy , User.delete
User.delete
User.destroy_all(<conditions>) 或 User.delete_all(<conditions>)
User.destroy_all(<conditions>)
User.delete_all(<conditions>)
Notice :用户是一个类,用户是一个实例对象
3 回答
这是
destroy
和destroy_all
方法,比如或者,您可以使用
delete
和delete_all
,它不会强制执行:before_destroy
和:after_destroy
回调或任何从属关联选项 .有
delete
,delete_all
,destroy
和destroy_all
.文档是:older docs和Rails 3.0.0 docs
delete
不实例化对象,而destroy
则实例化 . 通常,delete
比destroy
快 .User.destroy
User.destroy(1)
将删除用id == 1
和:before_destroy
和:after_destroy
回调的用户 . 例如,如果您有相关记录用户被销毁后,他的地址也将被销毁 . 如果您使用删除操作,则不会发生回调 .
User.destroy
,User.delete
User.destroy_all(<conditions>)
或User.delete_all(<conditions>)
Notice :用户是一个类,用户是一个实例对象