Senin, 16 Maret 2015

Cara Implementasi Soft Delete dengan gem 'permanent_records'

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