• 0

ما الفرق بين delete_all و destroy_all في ريلز؟

ابحث عن أفضل طريقة لحذف سجلات من جدول، فلدي مستخدم معرفه موجود في عدة جداول، وأنا أريد حذف هذا المستخدم وجميع السجلات التي لديها نفس المعرف في جميع الجداول.

وجدت تابعين للحذف وهما delete_all و destroy_all فما الفرق بينهم؟

تمّ تعديل بواسطة ahmed1990

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

هنالك فرق بسيط بين هذين التابعين فتابع destroy_all يحذف المستخدم وجميع الكائنات المرتبطة به وأما delete_all فإنه يحذف المستخدم دون الكائنات المرتبطة به.
إن delete_all تستخدم تعليمة SQL DELETE واحدة فقط أما destroy_all فانه سيقوم باستدعاء destroy() لجميع النتائج المتطابقة لشرط معين.
لذلك في حالتك هذه، التي تريد فيها حذف جميع سجلات مستخدم معين في قاعدة البيانات سوف تستخدم  destroy_all للحذف.
المصدر

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن