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

  • Jared Busch

    Jared Busch

    25 Mayıs 2011
  • RealPapaPit

    RealPapaPit

    16 Mart 2009
  • spectragirlz16's channel

    spectragirlz

    22 Ocak 2012

İLGİLİ SORU / CEVAPLAR