Saya mencari pendekatan terbaik untuk menghapus catatan dari sebuah tabel. Sebagai contoh, saya memiliki pengguna yang ID pengguna di banyak tabel. Saya ingin menghapus pengguna ini dan setiap catatan yang memiliki ID-nya di semua tabel.
u = User.find_by_name('JohnBoy')
u.usage_indexes.destroy_all
u.sources.destroy_all
u.user_stats.destroy_all
u.delete
Ini berfungsi dan menghapus semua referensi pengguna dari semua tabel, tapi saya dengar destroy_allitu sangat berat, jadi saya mencoba delete_all. Itu hanya menghapus pengguna dari tabel penggunanya sendiri dan iddari semua tabel lainnya dibuat nol, tetapi meninggalkan catatan di dalamnya. Dapatkah seseorang membagikan apa proses yang benar untuk melakukan tugas seperti ini?
Saya melihat bahwa destroy_allmemanggil destroyfungsi pada semua objek terkait tetapi saya hanya ingin mengkonfirmasi pendekatan yang benar.
delete_all, dan 2)destroy_allinstantiate semua record dan hancurkan mereka satu per satu, jadi dengan dataset yang sangat besar, ini bisa sangat lambat.