لا يمكن حذف الموضوع الذي تم إنشاؤه بواسطة النظام

أحاول إزالة بعض التصنيفات لصالح استخدام الوسوم، لكنني انتهيت بموضوع واحد تم إنشاؤه تلقائيًا ولا يمكنني حذفه (إنه موضوع ‘تقني’ في لقطة الشاشة، لاحظ أن عدد الردود هو -1). إذا حاولت زيارة هذا الموضوع، فإن الصفحة تتجمد واضطر إلى إغلاق التبويب والبدء من جديد. هل لديك أي فكرة عن كيفية حذف هذا، ربما عبر Rails؟

جرّب باستخدام

cd /var/discourse
./launcher enter app
rails c
Topic.find(id).destroy

ستجد الـ id عن طريق تمرير الماوس فوق عنوان الموضوع

شكرًا لكِ يا دانييلا، لقد نجح ذلك في حذف الموضوع، لكن الآن عندما أحاول حذف الفئة، لا يزال النظام يعتقد أن هناك موضوعًا واحدًا ولا يسمح لي بحذف الفئة. هل هناك وظيفة مماثلة لحذف الفئة؟

قم بنسخ احتياطي كامل لموقعك، ثم جرّب الأمر التالي:

cd /var/discourse
./launcher enter app
rails c
rake destroy:topics["Gear","Discussions"]

حيث أن “Gear” هي الفئة الفرعية الخاصة بك و"Discussions" هي الفئة الأصلية.

يجب أن يكون هذا كافياً لحذف جميع المواضيع في تلك الفئة الفرعية. بعد ذلك، يجب أن تتمكن من حذف الفئة الفرعية.

للأسف، هذه هي النتيجة…

NameError: متغير محلي غير معرف أو دالة `topics` لـ main:Object
من (pry):1:في `__pry__'
[2] pry(main)>

خطأ مني، جرب فقط

cd /var/discourse
./launcher enter app
rake destroy:topics["Gear","Discussions"]

لا توجد مواضيع للحذف في فئة gear/discussions، ومع ذلك لا يمكنني حذف الفئة: “لا يمكن حذف هذه الفئة لأن عدد المواضيع هو 1.”

هل يمكنك مراجعة السجلات الخاصة بك للتحقق من وجود أخطاء محددة؟

لا، لا أرى أي شيء في السجلات يتعلق بهذا…

هل يمكنك محاولة تحديث عدادات التصنيفات والنظر فيما إذا كان ذلك يساعد.

cd /var/discourse
./launcher enter app
rails c
Category.ensure_consistency!

ثم حاول حذف التصنيف مرة أخرى

للأسف، هذا أرجع nil

تمكنت من إعادة تعيين عدد المواضيع باستخدام

Category.find_by(name: 'Gear').update(topic_count: 0)

ثم تمكنت من حذف الفئة، شكرًا لك يا ديفيد!

هذا أيضًا أعاد nil بالنسبة لي.

أعاد هذا true، لكنه لم يغير القيم -1 في عمود الردود لمواضيعي. ولا زلت غير قادر على حذف الفئة.

بعد قضاء وقت أطول في هذا، نجحت في النهاية في جعله يعمل! شكراً لك!