使用Where条件

时间:2016-01-18 06:05:02

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-4

在Rails控制台的我的Rail应用程序中,我想删除creater_id =某个id如下的客户:

Customer.where(creater_id: 5).delete_all

什么是最佳方法 (因为rails为同一任务提供了不同的方法,我很想知道实现相同任务的任何其他方式,在性能方面更优化并对数据库产生影响)使用“where”来删除使用基于特定条件的rails条件?

1 个答案:

答案 0 :(得分:2)

这完全取决于你真正想做的事情:

    delete_all相比,
  • destroy_all是一种更快的方法,因为删除不会检查依赖项。它只会删除正在调用它的单个表的行。

  • 当我们想要删除模型的所有依赖项时,使用
  • destroy_all

例如,Student有多个courses

  • 调用User.where(some: 'some').delete_all将删除所有用户,但学生与课程的关联仍将存在于关联表中。
  • 调用User.where(some: 'some').destroy_all将删除所有用户以及课程关联。