SORU
14 Temmuz 2011, PERŞEMBE


vs destroy_all delete_all?

En iyi yaklaşım için bir tablodan kayıtları silmek için arıyorum. Örneğin, birçok tablolar arasında olan bir kullanıcı var. Bu kullanıcı ve tüm tablolar kendi KİMLİĞİ olan tüm kayıtları silmek istiyorum.

u = User.find_by_name('JohnBoy')
u.usage_indexes.destroy_all
u.sources.destroy_all
u.user_stats.destroy_all
u.delete

Bu ve tüm tablolardan kullanıcının tüm başvuruları kaldırır çalışır, ama destroy_all süreç ağır olduğunu çok duydum, delete_all çalıştım. Sadece kendi kullanıcı tablosundan kullanıcı kaldırır ve diğer tablolar id null yapılır, ama bu kayıtları onlara dokunmaz. Birisi doğru süreç böyle bir işi yapmak için ne paylaşabilir?

destroy_all tüm ilişkili nesneleri destroy işlevini çağıran görüyorum ama ben sadece doğru yaklaşımı teyit etmek istiyorum.

CEVAP
14 Temmuz 2011, PERŞEMBE


Haklısın. Eğer Kullanıcı ve tüm ilişkili nesneleri silmek istiyorsanız ->:destroy_all Eğer sadece tüm ilişkili nesneleri - ^ bastırmak olmadan Kullanıcıyı silmek istiyorsanız ancak . delete_all

Bu yazıya göre : Rails :dependent => :destroy VS :dependent => :delete_all

  • :/: destroy_all ilişkili nesneler kendi yok çağırarak, bu nesne ile birlikte imha edilir imha yöntemi
  • :/: delete_all Tüm ilişkili nesneleri sil hemen haber vermeden yok olurlar :yöntem yok

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • bunliu

    bunliu

    2 Mayıs 2007
  • eisleyhead

    eisleyhead

    11 Ocak 2006
  • Sean Murphy

    Sean Murphy

    4 ŞUBAT 2009

İLGİLİ SORU / CEVAPLAR