Bagaimana cara menghapus semua catatan di salah satu tabel basis data saya di aplikasi Ruby on Rails?
ruby-on-rails
ruby
database
ruby-on-rails-3
Justin Meltzer
sumber
sumber
ActiveRecord
model. Pertanyaannya bertanya tentang menghapus catatan dari 'tabel' dan saya hanya menunjuk atau asumsi yang ada dalam jawaban.Untuk menghapus melalui SQL
Item.delete_all # accepts optional conditions
Untuk menghapus dengan memanggil metode penghancuran setiap model (mahal tetapi memastikan panggilan balik dipanggil)
Item.destroy_all # accepts optional conditions
Semua disini
sumber
jika Anda ingin mengosongkan basis data dan tidak hanya menghapus model atau model yang terlampir, Anda dapat melakukannya:
Anda juga dapat melakukannya di database pengujian
sumber
Jika Anda bermaksud menghapus setiap instance dari semua model, saya akan menggunakan
sumber
select
setiap kali Anda perlu menggunakan ekspresi if di dalam blok, dengan cara ini Anda menghindari harus memadukan metode ringkas untuk menghapus elemen nil.sumber
Jika model Anda disebut BlogPost, itu akan menjadi:
sumber
MOPED: 127.0.0.1:27017 QUERY database=a_database collection=nothings selector={} flags=[:slave_ok] limit=0 skip=0 batch_size=nil fields=nil (0.3378ms)
Jawaban yang lebih baru jika Anda ingin menghapus setiap entri di setiap tabel:
Informasi lebih lanjut tentang di
eager_load
sini .Setelah memanggilnya, kita dapat mengakses semua keturunan
ActiveRecord::Base
dan kita dapat menerapkandelete_all
semua model.Perhatikan bahwa kami pastikan tidak menghapus tabel SchemaMigration.
sumber