RGJ
(Richard - Communiteq)
23 نوفمبر 2020، 3:45م
1
أنا لست معتادًا جدًا على صناديق الوارد الخاصة بالمجموعات، ولا أتأكد من كيفية تكرار هذه المشكلة، ولكن ما يحدث هو التالي:
تم إعداد صندوق وارد للرسائل الخاصة لمجموعة، لنسمّها ExampleGroup.
يحصل عضو في هذه المجموعة على إشعار يقول ‘هناك 6 رسائل في صندوق وارد examplegroup الخاص بك’.
عند النقر على هذا الإشعار، يحاول النظام تحميل /topics/private-messages-group/username/examplegroup.json.
يؤدي ذلك إلى ظهور خطأ.
أعتقد أن هذا يحدث لأنه لا توجد مجموعة باسم examplegroup. اسم المجموعة هو ExampleGroup.
يقوم ListController::generate_message_route بما يلي:
group = Group.find_by(name: params[:group_name])
يبدو أن تغيير هذا إلى:
group = Group.find_by(name: params[:group_name])
group = Group.where('lower(name) = ?', params[:group_name].downcase).first unless group
يحل المشكلة. لكنني متأكد من أن هذا ليس المشكلة الفعلية. هناك مكان ما يتم فيه تحويل المعلمة إلى أحرف صغيرة حيث لا ينبغي أن يحدث ذلك (أعتقد ذلك…).
هل لدى أي شخص أي اقتراح حول أين يجب البحث؟
3 إعجابات
angus
(Angus McLeod)
25 نوفمبر 2020، 1:19ص
3
إذا قمت بإنشاء الإشعارات مباشرةً في وحدة التحكم، فسيحترم الرابط حالة الأحرف (وهذا يعمل حتى لو كانت البيانات وهمية)
Notification.create!(
user_id: 1,
notification_type: Notification.types[:group_message_summary],
data: { inbox_count: 5, group_name: "MyGroup", group_id: 41, username: 'angus' }.to_json
)
قد تكمن المشكلة في جانب الإنشاء، أي في منشئ التنبيهات للمشاركات: discourse/app/services/post_alerter.rb at main · discourse/discourse · GitHub
ومع ذلك، لا يبدو أنني أستطيع تكرار هذه المشكلة.
إعجاب واحد (1)
RGJ
(Richard - Communiteq)
25 نوفمبر 2020، 6:19ص
4
شكرًا لك على مساعدتك! لكن هذا ليس الرابط الصحيح،
إنه ليس /u/username/messages/group/groupname
بل /topics/private-messages-group/username/groupname.
لا أستطيع معرفة مصدر الرابط الأخير أو كيفية إنشائه.
إعجابَين (2)
techAPJ
(Arpit Jalan)
20 أبريل 2021، 5:00ص
5
أعتقد أن الحل الصحيح هنا هو عدم اشتراط كتابة اسم المجموعة بحروف كبيرة في معلمات URL. تم ذلك عبر:
committed 04:55AM - 20 Apr 21 UTC
لاحظ أن التصفح إلى /u/username/messages/group/groupname سيؤدي إلى إرسال طلب AJAX إلى /topics/private-messages-group/username/groupname، لذا يبدو أن ما فعله @angus أعلاه لتصحيح هذه المشكلة صحيح.
شكرًا لك على الإبلاغ عن هذه المشكلة @RGJ
5 إعجابات