Soft delete adalah sebuah solusi ketika kita membutuhkan suatu data / record tidak muncul di view tapi masih tersimpan di database sebagai "archive". Jadi, ketika ada keperluan untuk mencari / mengembalikan ( restore ) data yang sudah dihapus user, kita masih bisa melakukan query untuk mencari dan menampilkan data tersebut.
Contoh: user menghapus data penjualan hari ini dengan tidak sengaja. Karena implementasi soft delete, system admin akan mampu melakukan restore data tersebut dengan relatif mudah.
Untuk implementasi soft delete, kita bisa menggunakan gem 'permanent_records'. Berikut ini cara integrasinya:
INSTALASI
Masukan gem 'permanet_records' di gemfile:
gem 'permanent_records', github: 'JackDanger/permanent_records'
selanjutnya jalankan di terminal:
$ bundle install
KEGUNAAN
Setelah penginstalan selesai dilakukan kita dapat menjalankan beberapa method untuk melakukan pengetesan.
User.find(3).destroy | # akan menjalankan action soft_delete untuk user yang bersangkutan | |||||
User.find(3).destroy(:force) | # akan menjalankan action delete dan record akan dihapus dari database | |||||
User.destroy_all | # Soft-delete semua user | |||||
User.delete_all | # Permanent delete semua user |
Bagaimana menampilkan record?
User.deleted.find(...) | # akan menampilkan user yang sudah tersoft_delete | |
User.not_deleted.find(...) | # hanya akan menampilkan record yang belum disoft_delete |
Dapatkah kita mengembalikan record yang sudah di soft_delete?
User.find(3).destroy | ||
User.find(3).revive #restore use yang sudah di soft-delete |
Demikian sedikit pembahasan untuk gem 'permanent_records' yang dapat kami berikan, semoga bermanfaat. Untuk lebih detail tentang gem ini, silahkan kunjungi laman berikut.
Happy Coding :)
Tidak ada komentar:
Posting Komentar