在Rails控制台的我的Rail应用程序中,我想删除creater_id =某个id如下的客户:
Customer.where(creater_id: 5).delete_all
什么是最佳方法 (因为rails为同一任务提供了不同的方法,我很想知道实现相同任务的任何其他方式,在性能方面更优化并对数据库产生影响)使用“where”来删除使用基于特定条件的rails条件?
答案 0 :(得分:2)
这完全取决于你真正想做的事情:
delete_all
相比, destroy_all
是一种更快的方法,因为删除不会检查依赖项。它只会删除正在调用它的单个表的行。
destroy_all
。
例如,Student
有多个courses
。
User.where(some: 'some').delete_all
将删除所有用户,但学生与课程的关联仍将存在于关联表中。User.where(some: 'some').destroy_all
将删除所有用户以及课程关联。