أجد هذا مزعجًا قليلاً أيضًا. عند تحديث معلومات أخرى تتعلق بفئة معينة، لا أملك بالضرورة معرفة 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
)
من الواضح أنني لن أعرف اسم الفئة دائمًا أيضًا. بالتأكيد أحتاج إلى البحث عن ذلك قبل تحديث الفئة.
سيكون من المفيد لو لم تكن هذه المعاملات إلزامية. بديلاً من ذلك، هل يمكن أن يكون هناك نوع من الصيغة للإشارة إلى “لا أريد تغيير الحقل”؟ مثلاً، إذا مررت _، فإنه يترك هذه السمة على قيمتها الحالية. (لست متأكدًا من السبب وراء كون هذه الحقول إلزامية، لذا أقترح أفكارًا قد تكون مفيدة وقد لا تكون كذلك.)