2016-01-18 74 views
0

在從Rails的控制檯我軌程序,我想刪除其creater_id客戶=一些ID喜歡波紋管:Rails的控制檯刪除使用Where條件

Customer.where(creater_id: 5).delete_all 

什麼是最好的方法(鐵軌提供了不同的方式對於同樣的任務,我很想知道如何通過其他方式實現相同的功能,並在性能方面進行更加優化,並對DB)使用基於特定條件的rails條件使用「where」進行刪除?

+1

當前查詢的問題是什麼? – Pavan

+1

嘿,你可以使用'Customer.where(creater_id:5).destroy_all'它也會刪除所有依賴的子對象。 –

+0

@Pavan只是想知道Rails爲同樣的任務提供了不同的方式,如果有更好或更優化的方法來做同樣的事情嗎? –

回答

2

這完全取決於你真正想做的事:

  • delete_all是比較destroy_all更快的方法,因爲刪除不檢查的家屬。它只會刪除被調用的單個表的行。

  • destroy_all用於我們想要刪除模型的所有依賴項。

例如,如果Student有很多courses

  • 調用User.where(some: 'some').delete_all將刪除所有用戶,但學生與課程的關聯仍將存在關聯表中。
  • 調用User.where(some: 'some').destroy_all將刪除所有用戶以及課程關聯。
+0

謝謝兄弟:) –

+0

不客氣的@布拉文喬治 –