جعل خيار معلق من مفتاح إجراءات الموضوع

نعتذر عن التأخير. لقد فكّرتُ كثيرًا في هذا الأمر.

إن جعل المنشور قيد الانتظار يعني حذف المنشور نهائيًا وتخزين جميع البيانات الضرورية لإعادة إنشائه داخل سمة الحمولة (payload) للعنصر القابل للمراجعة. اضطررتُ إلى إعادة كتابة هذا الأمر عدة مرات لأنني كنت قلقًا بشأن فقدان البيانات خلال هذه العملية بسبب الارتباطات المصنفة بـ dependent: :destroy أو dependent: :delete_all. ومع ذلك، وبعد بعض الاختبارات، أعتقد أن تنفيذ ذلك آمن.

تنفيذ هذا الإجراء عندما لا يحتوي الموضوع على ردود أو عندما لا يكون المنشور الأول يجب أن يتطلب جهدًا منخفضًا إلى متوسطًا. فكل المنطق الخاص بوضع المنشور في قائمة الانتظار موجود داخل طريقة NewPostManager#enqueue، لذا سنحتاج إلى استخلاصه إلى فئة منفصلة وإعادة استخدامه. نحن دائمًا نضيف المنشورات قيد الانتظار في نهاية الموضوع بعد الموافقة، لذا فإن إضافتها في موضع محدد سيتطلب قدرًا أكبر قليلًا من العمل.

نقل موضوع يحتوي على ردود إلى حالة الانتظار يجب أن يكون أكثر تعقيدًا باستخدام هذا النهج. إن تسلسله (Serialization) داخل عنصر قابل للمراجعة يبدو مبالغًا فيه بعض الشيء. ربما يمكننا إخفاء الموضوع مؤقتًا بدلاً من ذلك؟ على سبيل المثال، نقوم بالفعل بذلك عندما يُبلغ مستخدم موثوق عن منشور كرسالة بريد مزعج.

بديلًا عن ذلك، يمكننا دائمًا الإشارة إلى الإزالة + الحذف (أو الإخفاء) بدلاً من ذلك، مما يجعل كل شيء أسهل بكثير. لا أستطيع التفكير في سبب يجعل الحذف النهائي ووضع المنشور في قائمة الانتظار أفضل.

إعجابَين (2)