مجموعة المستخدمين 'muted categories' لا تحدث إشعارات الفئات الخاصة بالأعضاء

عندما أقوم بتحديث الفئات المكتومة في مجموعة مستخدمين وأقول نعم لـ “تحديث المستخدمين الحاليين؟”، لا يبدو أنها تحدث. على سبيل المثال، انظر إلى هذا المستخدم، رقم 8، وهو عضو في المجموعة رقم 42، ولكنه يفتقد العديد من سجلات category_user:

نتائج SQL
  • تأكيد عضوية المستخدم رقم 8 في المجموعة رقم 42
SELECT gu.*, g.name
FROM group_users gu
JOIN groups g ON gu.group_id = g.id
WHERE user_id=8 and gu.group_id = 42;
  id  | group_id | user_id |         created_at         |         updated_at         | owner | notification_level |     first_unread_pm_at     |       name        
------+----------+---------+----------------------------+----------------------------+-------+--------------------+----------------------------+-------------------
 4207 |       42 |       8 | 2023-07-03 11:36:43.828233 | 2023-07-03 11:36:43.828233 | f     |                  3 | 2023-12-29 22:52:43.371588 | japanese-learners
  • عرض مستويات إشعارات المستخدم الحالي رقم 8
SELECT cu.*, c.name, c.parent_category_id
FROM category_users cu
JOIN categories c ON cu.category_id = c.id
WHERE cu.user_id = 8;
  id   | category_id | user_id | notification_level | last_seen_at |     name      | parent_category_id 
-------+-------------+---------+--------------------+--------------+---------------+--------------------
 42289 |           1 |       8 |                  0 |              | Uncategorized |                   
  5981 |           5 |       8 |                  1 |              | Reading       |                  7
  7981 |           6 |       8 |                  1 |              | Watching      |                  7
   215 |           7 |       8 |                  1 |              | Japanese      |                   
  6981 |           9 |       8 |                  1 |              | Book Clubs    |                  5
   214 |          10 |       8 |                  0 |              | Korean        |                   
  2386 |          11 |       8 |                  0 |              | Reading       |                 10
  4384 |          12 |       8 |                  0 |              | Watching      |                 10
  3385 |          13 |       8 |                  0 |              | Book Clubs    |                 11
 36995 |          16 |       8 |                  0 |              | German        |                   
  • عرض مستويات الإشعارات من المجموعة رقم 42 (أكثر بكثير)
SELECT gcnd.*, c.name, c.parent_category_id
FROM group_category_notification_defaults gcnd
JOIN categories c ON gcnd.category_id = c.id
WHERE group_id=42;
 id  | group_id | category_id | notification_level |     name      | parent_category_id 
-----+----------+-------------+--------------------+---------------+--------------------
   1 |       42 |          10 |                  0 | Korean        |                   
   8 |       42 |           7 |                  1 | Japanese      |                   
  11 |       42 |          13 |                  0 | Book Clubs    |                 11
  12 |       42 |          11 |                  0 | Reading       |                 10
  14 |       42 |          12 |                  0 | Watching      |                 10
  26 |       42 |           9 |                  1 | Book Clubs    |                  5
  27 |       42 |           6 |                  1 | Watching      |                  7
  28 |       42 |           5 |                  1 | Reading       |                  7
  97 |       42 |          16 |                  0 | German        |                   
 174 |       42 |          21 |                  0 | Book Clubs    |                 18
 177 |       42 |          18 |                  0 | Reading       |                 16
 178 |       42 |          22 |                  0 | Reading       |                 17
 179 |       42 |          23 |                  0 | Watching      |                 17
 180 |       42 |          17 |                  0 | Spanish       |                   
 181 |       42 |          19 |                  0 | Watching      |                 16
 182 |       42 |          25 |                  0 | Book Clubs    |                 22
 367 |       42 |           1 |                  0 | Uncategorized |                   

هل هناك طريقة لتشغيل عملية “تحديث المستخدمين الحاليين” هذه يدويًا في وحدة تحكم rails؟ أنا غير ملم جدًا بـ rails، لذلك لم أتمكن من العثور عليها في الكود. أعتقد أنه سيكون من الجيد محاولة تشغيلها يدويًا ومعرفة ما إذا كانت المشكلة في عملية التحديث أو في تشغيل عملية التحديث.

أخبرني إذا كان لدى أي شخص أي أفكار أو مساعدة!

شكرا

معلومات إضافية:
موقعي: https://forums.learnnatively.com/
إصدار Discourse: 3.2.0.beta4-dev (46eec95719)

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

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

لست متأكدًا تمامًا من سبب عدم تشغيل عملية التحديث الأولية الخاصة بي، ولكن نظرًا لأنني استخدمت استدعاءً لواجهة برمجة التطبيقات (API)، وليس المسؤول، فقد أكون قد قدمت معلمة ‘update_existing_users’ غير صحيحة (قمت بتحويل قيمة ‘True’ من بايثون إلى JSON).

بغض النظر، تمكنت من حل هذه المشكلة.

الحل:

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

ها قد تم، يجب أن يكون الأمر جيدًا الآن!

للعلم، ليس لدي أي حكم حول ما إذا كان هذا السلوك هو السلوك الصحيح أم لا. ومع ذلك، ربما يمكن توثيقه :slight_smile:

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

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.