小编典典

如何删除 ActiveRecord 对象?

all

如何删除 ActiveRecord 对象?

我查看了Active Record
Querying
,它没有任何我可以看到的删除内容。

  1. 删除id

  2. 删除当前对象,如:user.remove

  3. 您可以根据where子句删除吗?


阅读 97

收藏
2022-03-30

共1个答案

小编典典

destroydestroy_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

User.delete_all(condition: 'value')将允许您删除没有主键的记录

注意 :来自@hammady 的评论,user.destroy如果用户模型没有主键,则不会工作。

注 2 :来自@pavel-chuchuva 的评论,Rails 5.1 中已弃用destroy_allwith conditions
和with conditions - 请参阅
guides.rubyonrails.org/5_1_release_notes.htmldelete_all

2022-03-30