Rails şekilde nasıl yazıyorsunuz? Bir modelim var - Yöneticiler. Yöneticiler tarafından manager_level'in 5 olduğu koşulu karşılayan tüm kayıtları silmek istiyorum.Rails - Koşullara uyan tüm kayıtları sil
Teşekkür ederiz.
Rails şekilde nasıl yazıyorsunuz? Bir modelim var - Yöneticiler. Yöneticiler tarafından manager_level'in 5 olduğu koşulu karşılayan tüm kayıtları silmek istiyorum.Rails - Koşullara uyan tüm kayıtları sil
Teşekkür ederiz.
Ben Silmek yerine imha kullanmak daha iyi olduğunu düşünüyorum:
Manager.where(:manager_level => 5).destroy_all
Bu çalışması gerekir:
Manager.where(:manager_level => 5).delete_all
Not: Bu bağımlı kayıtları kaldırmaz.
bu deneyin:
Manager.delete_all(manager_level: 5)
1. silen ne belirtmek için bir değişken kullanmak gerekir. 2. Tabloda bir dizin yok, diğer 2 tablo arasında bir bağlayıcı tablo var. –
Benim için çalışmadı. Referans bütünlüğü nedeniyle bir hata oluştu. –
, kabul edilen yanıt olmalıdır, çünkü diğer sorgular SİLME işleminden önce SELECT'i seçmeye çalışmaktadır - büyük veri kümelerindeki performans sorunlarına yol açmaktadır. – toobulkeh
Kesinlikle geçerli, ama akılda tutun: "Kayıtları eşleştirme koşullarını yok ederek her kaydı ve yok etme yöntemini çağırır." (http://apidock.com/rails/ActiveRecord/Relation/destroy_all) Bu, büyük sonuç kümeleri için çok yavaş olabilir. –
Evet, modelleri tutarlı tutmayı düşünüyordum. – MurifoX
@MurifoX - Yok etmenin neden sildiğinden daha iyi olduğunu açıklayabilir misiniz? Mutlaka katılmıyorum, ama cevabınızı daha eksiksiz hale getirmeye yardımcı olur. –