خطأ في الفئات ذات الرؤية المحدودة و/أو الفئات الفرعية

نفس الشيء بالنسبة لي، وقد قمت بالترقية اليوم. إذن هو في Discourse؟

والآن أحاول التعمق أكثر.

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

هممم، لديك خطأ في جانب الخادم يا @Jagster، أعتقد أن هذا شيء مختلف. أيضًا، لم يتم دمج هذا التغيير بعد، لذا لا ينبغي أن يؤثر على المواقع المستضافة ذاتيًا.

هذا صحيح، لكنني كنت مسجلاً الدخول. خطأ OP للمجهولين. وعلى أي حال، في كلتا الحالتين يحدث ذلك للفئات.

من ديسكورس:

HasCustomFields::NotPreloadedError (تم محاولة الوصول إلى الحقل المخصص غير المحمل مسبقًا 'sort_topics_by_event_start_date' على الفئة 'Category'.)

و

رسالة

HasCustomFields::NotPreloadedError (تم محاولة الوصول إلى الحقل المخصص غير المحمل مسبقًا 'sort_topics_by_event_start_date' على الفئة 'Category'. هذا ممنوع لمنع استعلامات N+1.)
app/models/concerns/has_custom_fields.rb:203:in `[]'
(eval):47:in `_fast_attributes'
lib/freedom_patches/ams_include_without_root.rb:57:in `include!'
lib/freedom_patches/ams_include_without_root.rb:57:in `include!'
app/controllers/application_controller.rb:531:in `serialize_data'
app/controllers/application_controller.rb:540:in `render_serialized'
app/controllers/categories_controller.rb:408:in `categories_and_topics'
app/controllers/categories_controller.rb:99:in `categories_and_latest'
app/controllers/application_controller.rb:422:in `block in with_resolved_locale'
app/controllers/application_controller.rb:422:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:64:in `call'
lib/middleware/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:389:in `call'
lib/middleware/gtm_script_nonce_injector.rb:10:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
lib/middleware/enforce_hostname.rb:24:in `call'
lib/middleware/request_tracker.rb:233:in `call'

تتبع المكدس

app/models/concerns/has_custom_fields.rb:203:in `[]'
plugins/discourse-calendar/plugin.rb:88:in `block (2 levels) in activate!'
(eval):47:in `_fast_attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:456:in `attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:480:in `_serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:359:in `serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer/associations.rb:124:in `block in serialize'
active_model_serializers (0.8.4) lib/active_model/serializer/associations.rb:123:in `map'
active_model_serializers (0.8.4) lib/active_model/serializer/associations.rb:123:in `serialize'
lib/freedom_patches/ams_include_without_root.rb:57:in `include!'

إذًا… سأقوم بإلغاء المكون الإضافي للتقويم، صحيح؟

تعديل

الروابط إلى الفئات في الشريط الجانبي تعمل بشكل جيد، كل روابط الفئات الأخرى تعطي خطأ.

لقد قمت بتقييد هذا الخطأ قليلاً. يحدث فقط عندما تحتوي الفئة على فئات فرعية. ويعطي /categories خطأ 500 أيضًا.

ولست متأكدًا حتى الآن مما إذا كان يأتي من Calender. إذا كان الأمر كذلك، فهل هذه حالة أخرى يكون فيها الوضع الآمن عديم الفائدة؟

لكن Lockdown يعطي هذا:

رسالة

HasCustomFields::NotPreloadedError (تمت محاولة الوصول إلى حقل مخصص غير محمل مسبقًا 'redirect_url' على فئة 'Category'. هذا غير مسموح به لمنع استعلامات N+1.)
app/models/concerns/has_custom_fields.rb:203:in `[]'
(eval):49:in `_fast_attributes'
lib/freedom_patches/ams_include_without_root.rb:57:in `include!'
lib/freedom_patches/ams_include_without_root.rb:57:in `include!'
app/controllers/application_controller.rb:531:in `serialize_data'
app/controllers/application_controller.rb:540:in `render_serialized'
app/controllers/categories_controller.rb:408:in `categories_and_topics'
app/controllers/categories_controller.rb:99:in `categories_and_latest'
app/controllers/application_controller.rb:422:in `block in with_resolved_locale'
app/controllers/application_controller.rb:422:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:64:in `call'
lib/middleware/content_security_policy_middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:389:in `call'
lib/middleware/gtm_script_nonce_injector.rb:10:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
lib/middleware/enforce_hostname.rb:24:in `call'
lib/middleware/request_tracker.rb:233:in `call'

تتبع

app/models/concerns/has_custom_fields.rb:203:in `[]'
plugins/discourse-category-lockdown/plugin.rb:18:in `block (2 levels) in activate!'
(eval):49:in `_fast_attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:468:in `rescue in attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:455:in `attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:480:in `_serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:359:in `serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer/associations.rb:124:in `block in serialize'
active_model_serializers (0.8.4) lib/active_model/serializer/associations.rb:123:in `map'
active_model_serializers (0.8.4) lib/active_model/serializer/associations.rb:123:in `serialize'

بيئة

HTTP HOSTS: foorumi.katiska.eu

لذا أنا متأكد تمامًا من أن هذا لا يأتي من الإضافات ولكن من Discourse نفسه، ولكن مرة أخرى، أنا لست مطورًا.

أنا المؤلف الأصلي ولا أملك إضافة التقويم مثبتة (أنا على مستوى استضافة discourse لا يحتوي على هذه الإضافة.)

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

يبدو الخطأ بالتأكيد وكأنه كذلك… sort_topics_by_event_start_date

يتم تسجيل هذا هنا:

وللفئات هنا:

لدي شعور بأن هذا قد يكون تراجعًا بسبب العمل على قابلية توسيع الفئات الذي نقوم به الآن… سنلقي نظرة.

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

جميل! تم الإبلاغ عن ذلك بالفعل. سأترك هذا أدناه حتى تعمل عملية البحث بشكل أفضل.

while trying to load /categories.json)

نحن نحقق في هذا.

هذه المشكلة سببها discourse-calendar، ولكن أحدث إصدار (قريبًا) من الإضافة يجب أن يحلها:

هذه مشكلة من discourse-category-lockdown، لا نملك أي سيطرة عليها. يمكنني تقديم طلب سحب لها.

6 إعجابات

مزيد من تتبع المشكلات هنا non preloaded custom field - Discourse Category Lockdown - Pavilion

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

هل تسبب؟ إذن، هل حصل كلا المكونين الإضافيين على نفس الخطأ بسبب السبب X، أم أن Discourse قد غيّر شيئًا يؤثر على كليهما؟

لا، أنا لا ألوم أحداً، لكنني أحاول فقط فهم المصطلحات.

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

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

لقد قدمت طلب سحب (PR) لهذا هنا، ولكنه ليس مستودعًا يمكننا الوصول إليه:

6 إعجابات

تم دمجه، قمت بإعادة بناء وتم إصلاح المشكلة :tada: شكرًا على الإصلاح السريع، سريع كالعادة.

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

نعم. يعمل بشكل جيد. شكراً جزيلاً.

فئة Lockdown تمنح spinner of eternity، على الرغم من ذلك (حسنًا، قد تأتي هذه المشكلة من Firefox/iPad في وضع التجسس أيضًا). لكنها مشكلة مختلفة، على ما أعتقد.

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