如何删除ActiveRecord对象?

我看了Active Record Querying,但它没有任何关于删除的内容.

  1. 删除id条,

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

  3. 你能根据where条款删除吗?

推荐答案

destroy种和destroy_all种方法,比如

user.destroy
User.find(15).destroy
User.destroy(15)
User.where(age: 20).destroy_all
User.destroy_all(age: 20)

或者,您可以使用deletedelete_all,它们不会强制执行:before_destroy:after_destroy回调或任何依赖关联选项.

User.delete_all(condition: 'value')将允许您删除记录

Note:根据@hammady的 comments ,如果用户模型没有主键,user.destroy将不起作用.

Note 2:根据@pavel chuchuva的 comments ,Rails 5.1中不推荐使用带条件的destroy_all和带条件的delete_all-参见指南.rubyonrails.org/5_1_发行说明.html

Ruby-on-rails相关问答推荐

Rails6.1|有没有一种方法可以判断哪些关联已经加入到一个范围中?

搜查升级到 4.0.0 和 ActionText::RichText

Rails 7 - has_many_attached 在加载新附件时删除旧附件

在bash中匹配带有空格字符的字符串

错误原始错误:未安装 ImageMagick/GraphicsMagick

显示每个 rspec 示例的运行时

如何在 IRB/Rails 控制台中 suppress 返回值的输出?

ruby on rails 和 javascript 之间的时间转换反之亦然?

有没有办法在模型而不是视图中使用复数()?

从 Rails 生成 PDF

具有条件的列的计数器缓存?

从 before_action 中排除控制器

如何独立测试模型的回调方法?

是否可以使用 Rails 迁移重命名索引?

Ruby 根据属性在数组中查找并返回对象

如何在每个操作的基础上禁用 Ruby on Rails 的日志(log)记录?

如何创建迁移以仅在索引存在时删除索引,而不是在不存在时抛出异常?

如何更改 Rails 3 控制器中视图文件的默认路径?

在 GIT 中处理 Rails db/schema.rb 文件的正确方法是什么?

如何在 Rails 表单中将复选框和标签保持在同一行?