إجمالي الحل في الملخص يعرض قيم غير صحيحة

مرحباً بالجميع،

بعد تحديث نسخة Discourse الخاصة بنا، يبدو أن لدينا أعدادًا غير صحيحة للمواضيع المحلولة عند النظر إلى ملخصات الملف الشخصي. مثال:

لقد لاحظت بالفعل وجود عدد قليل من التغييرات مؤخرًا، بما في ذلك خطأ فادح:

الأعداد الصحيحة لا تزال متاحة بشكل واضح، لذلك كان هناك على الأرجح شيء ما يحدث أثناء ترحيل البيانات إلى الجداول الجديدة؟

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

شكرا لمراسلتك. سألقي نظرة.

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

هناك بعض التناقضات في حساب الحلول في Discourse حيث كنا ندرج المواضيع والمشاركات التي تم حذفها بالفعل.

قبل الترحيل، كنا نشير إلى:

لدى جون 27 حلاً لأن الأشخاص قد وضعوا علامة على مشاركته كحل 27 مرة.

يتم تخزين هذا في جدول UserActions.

بعد الترحيل، نقوم الآن بالعد:

لدى جون 20 حلاً لأن هناك 20 موضوعًا حيث مشاركاته هي حلول

يتم تخزين هذا في جدول SolvedTopics، وله رابط مباشر لموضوع موجود وغير محذوف.

هناك فرق دقيق هنا - في السيناريو الأول لم تكن هناك أي عمليات تحقق للتأكد مما إذا كانت مشاركة الحل أو موضوعها لا تزال موجودة.

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

3 إعجابات

أنا متأكد تمامًا من أن هذه لا يمكن أن تكون المشكلة - لأنها ستؤدي فقط إلى أعداد أقل بدلاً من المزيد في بعض الحالات، أليس كذلك؟ لدي مثال آخر لك:

يبدو لي من المستحيل أن تضاعف آلية العد هذه عدد المشاركات المحلولة بأكثر من الضعف. إلى جانب ذلك (وهو غير مؤكد بالطبع) أشك بشدة في أن عدد المشاركات المحذوفة كان بهذا الارتفاع في مثالي السابق.

شكرًا!

هممم نعم 485 و 90 متباعدتان جدًا.

أعتقد أنني وجدت الخطأ للتو (على الرغم من أن البيان حول التناقض الذي ذكرته أعلاه لا يزال صحيحًا) –

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

  def solved_count
    UserAction.where(user: @user).where(action_type: UserAction::SOLVED).count
  end

في التنفيذ الجديد، عدد الحلول في ملخص مستخدم جون هو عدد المرات التي قام فيها جون بتحديد منشور كحل

  def solved_count
    DiscourseSolved::SolvedTopic.where(accepter: @user).count
  end

هذا يفسر الفرق الكبير. تغير تعريف “عدد الحلول” من “عدد المرات التي أجبت فيها” إلى “عدد المرات التي قبلت فيها”.

سأقوم بإصلاح الخطأ، شكرًا مرة أخرى على التقرير!

سأقوم أيضًا بتحديث طرق العد المختلفة المستخدمة في النافذة المنبثقة للملف الشخصي وملخص المستخدم.

4 إعجابات

إشادة بـ @ondrej لذكر Solution badge not working? لي أيضًا. يبدو أن بعض التناقضات كانت تحدث بالفعل قبل هذا الترحيل. الشيء الجيد هو أننا سننتقل إلى رقم أكثر اتساقًا عبر Discourse والإضافات الخاصة بنا.

4 إعجابات

رائع، شكراً جزيلاً لك! :slight_smile:

4 إعجابات

تم إصلاح هذا وتوحيده الآن - FIX: Standardise the definition of what a solution is by nattsw · Pull Request #352 · discourse/discourse-solved · GitHub

4 إعجابات

تم إغلاق هذا الموضوع تلقائيًا بعد يومين. لم يعد يُسمح بالردود الجديدة.