الموضوع الجديد لا يتم افتراضه إلى غير مصنف

مرحباً،

عندما يحاول أحد المستخدمين لدي (دور ‘قائد’) إنشاء موضوع جديد، تكون الفئة فارغة، وإذا نقروا على زر إنشاء الموضوع، فإنهم يحصلون على خطأ 404:

عندما أحاول أنا (كموظف) إنشاء موضوع جديد، لا تزال الفئة فارغة، لكنني أحصل على خطأ لقد قدمت معلمات غير صالحة للطلب: الفئة

لقد وجدت إعدادًا:

السماح بإنشاء مواضيع بدون فئة. تحذير: إذا كانت هناك أي مواضيع غير مصنفة، فيجب عليك إعادة تصنيفها قبل تعطيل هذا الخيار.

لا أتذكر تمكينه ولكنه ممكّن - أعتقد أنه افتراضي ولكني لست متأكدًا.

نظرت في إعدادات الفئة غير المصنفة:

هذه الفئة خاصة. تُستخدم كفئة افتراضية للمواضيع الجديدة التي لم يتم تحديد فئة لها. إذا كنت ترغب في منع هذا السلوك وإجبار اختيار الفئة، يرجى تعطيل الإعداد هنا. إذا كنت ترغب في تغيير الاسم أو الوصف، فانتقل إلى تخصيص / محتوى النص.

على المدى القصير، أخشى أن يعاني مستخدمونا من تجربة سيئة وغير قادرين على النشر. (خطأ 404)

لقد حاولت البحث في meta.discourse.org للعثور على إجابات لأسئلتي:

السؤال 1: لماذا حقل الفئة فارغ عندما أحاول إنشاء موضوع جديد؟ (إنه ليس فارغًا عندما أنشر على meta.discourse.org)

السؤال 2: إذا كان خيار “السماح بإنشاء مواضيع بدون فئة” ممكّنًا - فلماذا أحصل على خطأ؟ (أشك في أن “غير مصنفة” تعني في الواقع “بدون فئة”، ولكنها توصف بأنها “[…] الفئة الافتراضية للمواضيع الجديدة التي لم يتم تحديد فئة لها.”)

أنا في الواقع أحب سلوك meta.discourse.org؛ حيث تكون افتراضية لـ “عام” بدلاً من “غير مصنفة” ولكني لست متأكدًا من النهج الصحيح؛
أ) إعادة تسمية “غير مصنفة” إلى “عام”. (ملاحظة: وجدت منشورًا - من عام 2016 - يشير إلى أن هذا كان فكرة سيئة، وقارن “غير مصنفة” بـ “فارغة” في قاعدة البيانات.)

أو

ب) إنشاء فئة “عام”، ونقل جميع المواضيع غير المصنفة إلى “عام” (كيف؟)، وتعيين “عام” كافتراضي للمنشورات الجديدة، وتعطيل خيار “السماح بإنشاء مواضيع بدون فئة”.

أي نصيحة - أو إشارة إلى الوثائق ذات الصلة - موضع تقدير.

مع خالص التقدير
ستيفن

ملاحظة جانبية: على سبيل المثال، نحن مشروع مفتوح المصدر وهذا مثيل discourse مجاني مقدم بلطف من قبل الأشخاص اللطفاء في https://www.discourse.org

لاحظت هذا أيضًا. ولكني قمت بتعطيل “غير مصنفة” ولكن يجب أن يظل يحدد الفئة العلوية في هذه الحالة. إنه يعرض نفس حقل الفئة (فارغ) كإعداد افتراضي.

إعجاب واحد (1)

شكرا لك @MarcP!

أعتقد أن هذه قد تكون مشكلة، لكنني لم أرد أن أحكم مسبقًا.
س.

مرحباً ستيفن،

ما هو إصدار Discourse الذي يعمل عليه موقعك؟

تم مؤخرًا استبدال فئة “غير مصنفة” بفئة عامة جديدة. هل ظهرت فئة جديدة بهذا الاسم على موقعك؟ هل كان لديك فئة عامة سابقًا؟

نعم، كان لدي فئة عامة من قبل. أقوم بتشغيل أحدث إصدار ولكني لاحظت ذلك منذ بضعة أسابيع؟

نعم، يبدو أن هذا سلوك حديث بالنسبة لي أيضًا.

كان ينبغي إصلاح هذا بواسطة هذا الالتزام، ولكن يمكنني أن أرى أن موقعك قد تم تحديثه بالفعل ليشمل ذلك:

هناك احتمال أنه لم يغطِ كل الحالات. سنكلف شخصًا بالنظر في الأمر. :+1:

5 إعجابات

هممم، عندما أقوم بتمكين السماح بالمواضيع غير المصنفة، لا تزال الفئة غير المصنفة تظهر في صفحة الفئات الخاصة بي. حتى بعد أن قمت بإعادة تسمية الفئة العامة الخاصة بي.

فئة غير مصنفة ليست إعدادًا افتراضيًا للموقع الآن منذ تم تمكين فئة عام على Discourse. في تثبيتات Discourse الجديدة، توجد فئة عام افتراضية. لذلك، عند فتح المنشئ، تكون الفئة المحددة تلقائيًا هي عام. ومع ذلك، في التثبيتات القديمة حيث لم يكن لديك فئة عامة، أعتقد أن أي فئة يمكن أن تكون الفئة العامة. أعتقد أن هذا يعني فقط في هذه الحالة الفئة الافتراضية للمنشئ. لذلك لن يكون هذا كافيًا إذا قمت بإنشاء فئة باسم عام. ستحتاج أيضًا إلى إعداد معرف الفئة باستخدام إعداد الموقع المخفي general_category_id.

على سبيل المثال:
إذا قمت بإنشاء فئة جديدة لهذا الغرض العام. يمكن أن يكون اسم الفئة على سبيل المثال: عام ويجب عليك التحقق من معرف الفئة أيضًا. الآن في هذا المثال سيكون 9.

تم إنشاء الفئة بنجاح ولكن عند فتح المنشئ لن تكون الفئة الافتراضية، لذا دعنا نقوم بإعداد إعداد الموقع المخفي.

إعداد category_id للفئة العامة

ملاحظة: معرف الفئة = 9 هو فقط في هذا المثال معرف الفئة الصحيح. من المحتمل أن يكون للفئة التي أنشأتها حديثًا رقم معرف فئة مختلف.

cd /var/discourse
./launcher enter app
rails c
SiteSetting.general_category_id=9
exit
exit

بعد ذلك، عند فتح المنشئ، ستكون الفئة عام ذات المعرف 9 هي الفئة الافتراضية.

إعجابَين (2)

هل قمت بإعادة البناء منذ إعادة تسمية عام؟

لم نقم بإعادة تسمية general - لدينا فقط ‘uncategorized’ ولم نقم بإعادة تسميته.

تم تحديث Discourse: قبل 14 ساعة

نحن مشروع مفتوح المصدر وهذا نسخة discourse مجانية (مقدمة بلطف من الأشخاص الرائعين في https://www.discourse.org) لذا تحدث الترقيات تلقائيًا دون تدخل منا

لا تزال الفئة تظهر فارغة

@Don

شكرًا - هذه نسخة مستضافة لذلك لست على علم بطريقة للحصول على وصول إلى shell لتعيين إعداد الموقع المخفي.

أفضل التحيات

ستيفن

إعجاب واحد (1)

إنها عطلة نهاية الأسبوع لمعظم الفريق، ولكن يمكننا إصلاح ذلك لك بمجرد توفر شخص ما. :slightly_smiling_face::+1:

4 إعجابات

أريد فقط التأكد - حتى أتمكن من تقليل الاضطراب للمستخدمين النهائيين:

  1. هل أحتاج إلى إنشاء فئة “عامة” تحضيراً؟

  2. هل سأحتاج إلى نقل جميع المواضيع التي تحمل الفئة “غير مصنفة” إلى “عامة” بعد إجراء تغيير التكوين؟

شكراً لمساعدتك
ستيفن

إذا كنت تستهدف هذه النتيجة بدلاً من #uncategorized كافتراضي لك، فيجب أن تكون آمنًا في إنشاء فئة #general جديدة، ونقل جميع مواضيع #uncategorized الخاصة بك إليها باستخدام الأداة المجمعة، ثم تعطيل allow uncategorized topics في إعدادات المسؤول لديك (على الرغم من أن هذا لن يصلح القائمة المنسدلة).

ومع ذلك، سيستغرق هذا بضع دقائق فقط لعضو فريق لإصلاحه جنبًا إلى جنب مع التحديث اليدوي لإعداد general_category_id المخفي الخاص بك، لذلك قد ترغب فقط في الانتظار. :slightly_smiling_face:

4 إعجابات

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

إعجاب واحد (1)

فقط حتى أفهم

  • النسخ الجديدة من discourse لديها فئة عامة هي الافتراضية عند نشر موضوع جديد.

  • تأتي نسختنا من وقت كان فيه الافتراضي هو فئة “غير مصنفة”.
    الإصلاح هو تعيين SiteSetting.general_category_id إلى معرف الفئة غير المصنفة

هذا الأمر:

SiteSetting.general_category_id=<new category id>

  • يجب على النسخ التي لا تزال تحتوي على فئة غير مصنفة تعيين الإعداد أعلاه عند الترقية.
إعجاب واحد (1)

تم حل كل شيء. انتقلنا إلى استخدام “عام” بدلاً من “غير مصنف” وقدم النظام فئة افتراضية بشكل صحيح.

شكراً لكل من ساعد في تشخيص هذه المشكلة، وشكر خاص لـ @fzngagan على حلها بهذه السرعة والمهنية.

مع خالص التقدير

ستيفن

5 إعجابات

لكل من قام بحذف الفئة العامة المزروعة يدويًا قبل هذا الإصلاح

يوجد الآن إصلاح إضافي سينظف SiteSetting.general_category_id إذا تم تعيينه إلى فئة غير موجودة:

3 إعجابات