Rails 使用 Where 条件删除控制台
Rails Console Deletion using Where Condition
在 Rails 控制台的我的 Rail 应用程序中,我想删除其 creater_id = 如下所示 ID 的客户:
Customer.where(creater_id: 5).delete_all
最好的方法是什么 ( 因为 rails 为同一任务提供了不同的方法 我很想知道任何其他实现方法与在性能方面更优化和对 DB 的影响相同)根据使用 "where" ?
的特定条件删除使用 rails 条件
这完全取决于你真正想做什么:
与 destroy_all
相比,delete_all
是一种更快的方法,因为删除不检查依赖项。它只会删除调用它的单个 table 的行。
destroy_all
用于删除模型的所有依赖项。
例如,如果 Student
有很多 courses
。
- 调用
User.where(some: 'some').delete_all
将删除所有用户,但学生与课程的关联仍将存在于关联 table 中。
- 调用
User.where(some: 'some').destroy_all
将删除所有用户以及课程关联。
在 Rails 控制台的我的 Rail 应用程序中,我想删除其 creater_id = 如下所示 ID 的客户:
Customer.where(creater_id: 5).delete_all
最好的方法是什么 ( 因为 rails 为同一任务提供了不同的方法 我很想知道任何其他实现方法与在性能方面更优化和对 DB 的影响相同)根据使用 "where" ?
的特定条件删除使用 rails 条件这完全取决于你真正想做什么:
-
与
delete_all
是一种更快的方法,因为删除不检查依赖项。它只会删除调用它的单个 table 的行。destroy_all
用于删除模型的所有依赖项。
destroy_all
相比,例如,如果 Student
有很多 courses
。
- 调用
User.where(some: 'some').delete_all
将删除所有用户,但学生与课程的关联仍将存在于关联 table 中。 - 调用
User.where(some: 'some').destroy_all
将删除所有用户以及课程关联。