لماذا تُعد سمات name وcolor وtext_color مطلوبة لمسار تحديث الفئة
(Discourse API Docs)؟
يبدو أنه يجب أن تكون سمات مثل slug قابلة للتحديث دون تحديد أي سمات أخرى.
لماذا تُعد سمات name وcolor وtext_color مطلوبة لمسار تحديث الفئة
(Discourse API Docs)؟
يبدو أنه يجب أن تكون سمات مثل slug قابلة للتحديث دون تحديد أي سمات أخرى.
أجد هذا مزعجًا قليلاً أيضًا. عند تحديث معلومات أخرى تتعلق بفئة معينة، لا أملك بالضرورة معرفة color و text_color لتلك الفئة. لذا، خياراتي هي إما تغيير كليهما إلى قيم غير مؤذية، أو إضافة استدعاء API آخر لجمع هذه المعلومات أولاً. إليك مثال باستخدام discourse_api gem:
response = client.categories
cat = response.find {|e| e['name'] == 'Category Name'}
response = client.update_category(
id: cat['id'],
name: cat['name'],
color: cat['color'],
text_color: cat['text_color'],
# أضف السمة (السمات) التي تريد تحديثها فعليًا أدناه
parent_category_id: 7, # أقوم بتضمين عدة فئات تحت الفئة رقم 7
)
من الواضح أنني لن أعرف اسم الفئة دائمًا أيضًا. بالتأكيد أحتاج إلى البحث عن ذلك قبل تحديث الفئة.
سيكون من المفيد لو لم تكن هذه المعاملات إلزامية. بديلاً من ذلك، هل يمكن أن يكون هناك نوع من الصيغة للإشارة إلى “لا أريد تغيير الحقل”؟ مثلاً، إذا مررت _، فإنه يترك هذه السمة على قيمتها الحالية. (لست متأكدًا من السبب وراء كون هذه الحقول إلزامية، لذا أقترح أفكارًا قد تكون مفيدة وقد لا تكون كذلك.)
أوافق. لا أعتقد أن حقول الألوان يجب أن تكون إلزامية عند التحديث. ومن المرجح ألا تكون إلزامية عند الإنشاء أيضًا. سأبحث في هذا الأمر وأرى ما يمكنني تحسينه هنا.
لقد قمت للتو بدفع تحديث لهذا ![]()
عند إنشاء فئة، لا يزال حقل الاسم مطلوبًا، ولكن عند تحديث الفئة، لم يعد عليك تحديد الاسم واللون ولون النص بالإضافة إلى الخاصية الفعلية التي تريد تحديثها.