برنامج إجابة السؤال

كان هذا يحدث في جميع المواضيع، وليس فقط في مواضيع الأسئلة والأجوبة. لدينا تصنيف “الأسئلة” حيث تكون جميع المواضيع من نوع الأسئلة والأجوبة، كما نستخدم وسم “سؤال” لجعل الموضوع من نوع الأسئلة والأجوبة.

لكن السلوك مختلف قليلاً الآن؛ فقبل ذلك، كان الترتيب الثابت الذي يُعطى لها يضعها في أسفل القائمة، أما الآن فهي لا تزال غير مرتبة بشكل صحيح، لكن المنشورات الأحدث تظهر أسفلها.

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

شكرًا لك @AJDurant.

واجه أحد عملائنا هذه المشكلة، لذا تمكنت من إلقاء نظرة أوثق على مجموعة البيانات التي ظهرت فيها. أعتقد أن إحدى المشكلات هنا قد تكون في كيفية معالجة المواضيع التي يتم فيها إزالة علامة QA.

لقد بدأت في إنشاء طلب دمج (PR) يعالج هذه المشكلة، وسأعمل على ذلك مع @mbcahyono

طريقة إصلاح المشكلة لموضوع معين هي:

./launcher enter app
rails c
topic = Topic.find(<topic_id>) 
topic.posts.each { |p| p.update_columns(sort_order: p.post_number) }

إذا كان أي شخص يحتاج إلى مساعدة عملية إضافية لمعالجة هذه المشكلة على خادمه، فلا تتردد في التواصل معي بشكل خاص وسأساعدك في حلها (مجانًا).

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

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

كما أكدت أن تشغيل الأمر التالي لا يحل المشكلة

rake "posts:reorder_posts[1234]"

هل هناك طريقة لتشغيل هذا على جميع المنشورات - أي التكرار عبر جميع المنشورات؟

هل قمت للتو بتشغيل rake posts:reorder_posts بمفرده ولم ينجح؟ يرجى المحاولة مرة أخرى أولاً.

إذا لم ينجح ذلك، يمكنك تشغيل الأمر التالي:

./launcher enter app
rails c
Post.update_all("sort_order = post_number")

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

إعجابَين (2)

نفّذت الأمر أعلاه وحصلت على الخطأ التالي:

root@REMOVE-web-only:/var/www/discourse# rake posts:reorder_posts
rake aborted!
PG::UniqueViolation: ERROR:  duplicate key value violates unique constraint "post_timings_unique"
DETAIL:  Key (topic_id, post_number, user_id)=(1567, 20, 3) already exists.
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-2.2.0/lib/patches/db/pg.rb:110:in `exec'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-2.2.0/lib/patches/db/pg.rb:110:in `async_exec'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/mini_sql-0.3/lib/mini_sql/postgres/connection.rb:201:in `run'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/mini_sql-0.3/lib/mini_sql/postgres/connection.rb:173:in `exec'
/var/www/discourse/lib/tasks/posts.rake:368:in `block (3 levels) in <main>'
/var/www/discourse/lib/tasks/posts.rake:351:in `each'
/var/www/discourse/lib/tasks/posts.rake:351:in `block (2 levels) in <main>'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/abstract/database_statements.rb:280:in `block in transaction'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/abstract/transaction.rb:280:in `block in within_new_transaction'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.3.3/lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in `block (2 levels) in synchronize'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.3.3/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.3.3/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.3.3/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.3.3/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/abstract/transaction.rb:278:in `within_new_transaction'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.3/lib/active_record/connection_adapters/abstract/database_statements.rb:280:in `transaction'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.3/lib/active_record/transactions.rb:212:in `transaction'
/var/www/discourse/lib/tasks/posts.rake:312:in `block in <main>'
/usr/local/bin/bundle:23:in `load'
/usr/local/bin/bundle:23:in `<main>'
Tasks: TOP => posts:reorder_posts
(See full trace by running task with --trace)

لم أُنفّذ الأمر الثاني بمجرد رؤيتي لخطأ المفتاح المكرّر، معتقدًا أن ذلك قد يشير إلى مشكلة أكبر.

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

إعجابَين (2)

شكرًا لك @angus، يبدو أن كل شيء يعمل بشكل صحيح الآن :smiley:

تشغيل الإصدار الأحدث وملاحظة الأخطاء التالية.

رسالة (تم الإبلاغ عن 49 نسخة)

استثناء الوظيفة: ثابت غير مهيأ Jobs::QaUpdateTopicsPostOrder
هل تقصد؟ Jobs::UpdateTopicPostOrder
Jobs::QAUpdateTopicsPostOrder

أثر الرجوع

/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/inflector/methods.rb:284:in const_get' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/inflector/methods.rb:284:in block in constantize’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/inflector/methods.rb:280:in each' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/inflector/methods.rb:280:in inject’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/inflector/methods.rb:280:in constantize' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/core_ext/string/inflections.rb:68:in constantize’
/var/www/discourse/app/jobs/base.rb:288:in enqueue' /var/www/discourse/app/jobs/onceoff/onceoff.rb:40:in block in enqueue_all’
/var/www/discourse/app/jobs/onceoff/onceoff.rb:37:in each' /var/www/discourse/app/jobs/onceoff/onceoff.rb:37:in enqueue_all’

نعتذر عن المشكلة. نحن نعمل عليها، في انتظار الدمج:

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

رائع، أنا متحمس لرؤية هذا الدمج وأتطلع إلى الإصلاح. أتمنى لكم أعياداً سعيدة.

ما هو دور إعداد “تنسيق QnA واحد إلى متعدد” الموجود في إعدادات الفئة؟

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

هذه ميزة قديمة سيتم إزالتها من إضافة QnA في المستقبل القريب. هذه الميزة الآن لها إضافة مخصصة خاصة بها

إعجابَين (2)

كيف تقوم بإزالة تصويتك؟ في الخيارات، يوجد إعداد يحدد المدة الزمنية المتاحة لإلغاء التصويت، لكنني لا أرى طريقة للقيام بذلك فعليًا.

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

هل توجد أمثلة جيدة على استخدام هذا الإضافة في الواقع؟ أحب أن أراه يعمل!

حدد النص الأصفر “إلغاء تصويتك الأعلى” - انظر إلى لقطة الشاشة أدناه.

لاحظت بعض ملاحظات التغذية الراجعة:

  1. أيقونة التصويت للأعلى لا تحترم الوضع المظلم (انظر لقطة الشاشة)
  2. موضع شارة التميز الخاصة بي في التعليقات على الإجابات غير دقيق (انظر لقطة الشاشة)
  3. تنسيق زر المعلومات ليس سيئًا، لكنه لا يتناسب حقًا مع باقي الصفحة ويشغل مساحة أفقية. ربما نهج مختلف، مثل رابط نصي صغير في الزاوية العلوية اليمنى أو بجانب الفئة والوسم، قد يعمل بشكل أفضل؟
  4. رابط “إلغاء تصويتك الأعلى” ليس واضحًا كـ رابط
  5. إعداد المسؤول qa trust level vote limits غير محدد افتراضيًا، لكنني لا أزال أحصل على خطأ “لا يمكنك تجاوز عدد الأصوات لمستوى الثقة الخاص بك”، وهو أمر غير منطقي؟
  1. هل يوجد زر ‘تعليق’ فقط في المنشور الأول، بينما لا يظهر هذا الزر في أسفل الردود؟

هل هذا مقصود بالتصميم أم أن هناك خطأ في سمة (Theme) الخاصة بي؟

  1. التصويت بالإعجاب غير محاذاة بشكل صحيح، وأعتقد أنه يمكن إصلاح ذلك باستخدام CSS (سأحاول القيام بذلك).

شكرًا لك!

هل يمكننا استعادة الترتيب الطبيعي للمشاركات بإلغاء تثبيت الإضافة؟

أرى أن الخطأ المبلغ عنه سابقًا قد جعل محادثاتنا فوضوية جدًا :neutral_face:

نعم، يبدو أن هناك تعارضًا بين هذه الإضافة وإضافة Solved Plugin، أي عنصر «الحل» الموجود في لقطة الشاشة الخاصة بك. هذه الإضافة لا تدعم إضافة Solved Plugin رسميًا حتى الآن.

نعم، كل ما عليك فعله هو تعطيل الإضافة في فئة ما حيث تكون مفعلة، وعندها سيعود ترتيب المنشورات إلى طبيعته.

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

شكراً لك على هذه الإضافة! سؤال واحد، ماذا يحدث للمحتوى إذا تمت إزالة الإضافة؟ من الواضح أن الأصوات والفرز الخاص للردود ستختفي، ولكن ماذا سيحدث لـ “الردود” و “التعليقات” لكل رد؟ هل ستبقى أم ستختفي؟

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

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

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

سؤال رائع.

التعليقات والإجابات هي مجرد منشورات تظهر بترتيب مختلف. سيتم الاحتفاظ بها.

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

على سبيل المثال، لقد قمت للتو باستعادة فئة الأسئلة والأجوبة على try.thepavilion.io إلى ترتيبها القياسي (أي بترتيب زمني (سيتغير مرة أخرى في غضون 24 ساعة).

https://try.thepavilion.io/t/whats-it-like-to-be-a-bat/22

إعجابَين (2)

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

بالمناسبة، فقط في حال كنت فضوليًا، نحن نستخدم إضافتك لإنشاء دليل فيديو تعاوني لمنتج، حيث تتم دعوة الأشخاص لربط مقاطع الفيديو التي أنشأها الأشخاص حول جوانب هذا المنتج. لقد قمنا بتخصيص عدد قليل من التسميات لجعله يعمل. انظر Bitwig Video Guide - Bitwish (لقد بدأنا للتو، لذا فهو فارغ في الغالب؛ أيضًا، معظم الفئات الفرعية مكتومة ولهذا السبب يبدو فارغًا للمستخدمين المجهولين).

3 إعجابات