إضافة مرادف لنفس الوسم يؤدي إلى التعليق

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

لقد أضفت عن طريق الخطأ الوسم أ كمرادف تحت الوسم أ (عن طريق الخطأ، من الهاتف).

  • يؤدي حذف المرادف إلى ظهور خطأ 500.
  • يؤدي زر إلغاء الربط إلى ظهور خطأ 422.
  • يؤدي حذف الوسم إلى ظهور خطأ غير معروف.

قد يكون من المفيد:

  • يمكنني إعادة تسمية الوسم أ إلى ب، وسيتم تعديل المرادف أيضًا.
  • لا يغير وجود 0 أو 1 منشور مع الوسم أ من الأخطاء المذكورة أعلاه.

هل يمكن لأحد تكرار هذه المشكلة؟

إعجابَين (2)

يبدو أن هذا شيء لا ينبغي السماح بحدوثه. أفترض أنك انتهى بك الأمر إلى شيء مثل هذا:

أقوم باختبار هذا على موقع التطوير المحلي الخاص بي. بعد إنشاء المرادف، يؤدي النقر على زر “إزالة المرادف” إلى ظهور خطأ 422. أما النقر على أيقونة سلة المهملات للمرادف فلا يعطي خطأ 500، بل يقوم بحذف الوسم بالكامل.

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

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

شكرًا لك على التحقق من هذه المشكلة.

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

ما هي إصدار Discourse الذي يعمل عليه موقعك؟

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

لقد قمت للتو بالترقية إلى أحدث إصدار:

2.6.0.beta5 ( 811c610108 )

السلوك هو نفسه كما في منشوري الأصلي.

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

يجب أن نخصص هذا الأسبوع القادم @eviltrout، فإضافة وسم كمرادف لنفسه .. ليس أمراً جيداً.

إعجابَين (2)

تم الإصلاح عبر:

شكرًا لتقريرك عن هذه المشكلة @MarcP. :+1:

4 إعجابات

تم فتح هذا الموضوع بناءً على طلب @MarcP. فهو غير قادر على حذف الوسم حتى عبر وحدة التحكم.

cd /var/discourse
./launcher enter app
rails c

tag = Tag.find_by_name("tag_name")
tag.destroy

الكود أعلاه لا يعمل مع Marc بينما يعمل معي. هل يمكنك توضيح مشكلتك هنا يا Marc؟

3 إعجابات

الأمر الذي أرسله لي @techAPJ لم ينجح معي، ومع ذلك قمت بتشغيل الأوامر (المختلفة قليلاً) الموجودة في: How can I delete a tag in development database (on local)? - #4 by simon

حصلت على النتائج التالية عند محاولة حذف الوسم الخاص بي “testing” الذي يحتوي على وسم مرادف: “testing”.

[1] pry(main)> t = Tag.find_by_name('testing')
=> #<Tag:0x000055a268f6f990
 id: 35,
 name: "testing",
 topic_count: 0,
 created_at: Wed, 11 Nov 2020 04:38:06 UTC +00:00,
 updated_at: Thu, 19 Nov 2020 03:44:35 UTC +00:00,
 pm_topic_count: 0,
 target_tag_id: 35>
[2] pry(main)> t.destroy!
SystemStackError: stack level too deep
from /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.3/lib/active_record/reflection.rb:120:in `_reflect_on_association'
[3] pry(main)>

محاولة:

DB.exec("delete from tags where name = 'testing'")
5 إعجابات

نجح ذلك! شكرًا لك يا سام :slight_smile: أتمنى لك أسبوعًا سعيدًا.

إعجابَين (2)