مرحباً! هذا سؤال موجه بشكل أساسي إلى @angus ولكن إذا كان لدى أي شخص أي اقتراحات فسأكون ممتناً جداً!
كنت أعمل على نسخة معدلة من مكون Topic Custom Field Plugin الخاص بـ @angus وكان يعمل كما هو مرغوب به في نسختي المحلية من discourse (الإصدار 3.4.0.beta3-dev). بمجرد تثبيته على نسختنا المنشورة من discourse (أيضاً الإصدار 3.4.0.beta3-dev)، يحدث شيء غريب. عندما يكتب المستخدم منشوراً جديداً ويضع مدخلاً في الحقل المخصص، فإنه لا يحفظه أو يعرضه عندما ينشر المستخدم. ولكن إذا قام المستخدم بتحرير المنشور ثم أضاف المدخل، فإنه يحفظه ويعرضه. لذا يشير هذا إلى أنه يتعطل في مكان ما في الموصلات (يفترض موصل composer)، لكنني لا أستطيع معرفة السبب لأنه يعمل بشكل مثالي في نسختي المحلية. لدي بعض التعبيرات العادية (regex) التي تقوم بتصفية المدخلات، ربما يكون هذا هو السبب؟ أي اقتراحات ستكون محل تقدير كبير، شكراً لكم!
من الصعب تصحيح هذا بشكل مجرد، لذا سأقدم لك بعض النصائح بدلاً من ذلك. المفتاح لمعرفة الإجابة على أي مشكلة كهذه هو التركيز، وعملية الاستبعاد. ابدأ بمعرفة سبب قدرتك على تكرار المشكلة في بيئة الإنتاج ولكن ليس في بيئة التطوير.
هل الإضافات والسمات متطابقة تمامًا في بيئة الإنتاج والتطوير؟
هل تستخدم نفس نوع المستخدم (مسؤول، مشرف، إلخ)؟
هل تقوم بتنفيذ الإجراءات في نفس نوع الموضوع؟
هل تقوم بتنفيذ الإجراءات بنفس السرعة؟
ابدأ بفعل كل ما يمكنك لمحاولة تكرار المشكلة في بيئة التطوير، إذا كانت هناك مشكلة بالفعل. ركز على ذلك حتى تحصل على نتائج أو تعرف سبب اختلافها في بيئة الإنتاج.
أيضًا، جزء من سبب عدم تخصيص إضافة حقول الموضوع المخصصة للاستخدام في بيئة الإنتاج هو أنها لا تحتوي على أي اختبارات. أعرف أنك لن تحب سماع هذا، ولكن يجب عليك كتابة بعض اختبارات القبول لسلوك المنشئ. سيعطيك ذلك إجابة قاطعة حول ما إذا كان يعمل في سيناريوهات معينة أم لا.
لست متأكدًا مما إذا كان هذا سيساعد، ولكن يبدو أن المشكلة قد تكون في أن الحقل المخصص لم يتم إعداده بشكل صحيح عند إنشاء منشور.
تأكد من تعيين قيمة افتراضية للحقل عند فتح المنشئ.
يمكنك أيضًا محاولة تعطيل عامل تصفية التعبير العادي (regex) مؤقتًا للتحقق مما إذا كان يسبب أي مشاكل في التحقق من الصحة. أخيرًا، تحقق مرة أخرى من أن الحقل المخصص مدرج بالفعل في البيانات المرسلة أثناء الحفظ الأولي.