Je trouve cela aussi légèrement irritant. Lors de la mise à jour d’autres informations concernant une catégorie, je ne connais pas nécessairement la color et la text_color de celle-ci. Mes options consistent donc soit à modifier les deux pour des valeurs anodines, soit à ajouter un autre appel API pour récupérer ces informations au préalable. Voici un exemple utilisant le 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'],
# Ajoutez ci-dessous les attributs que vous souhaitez réellement mettre à jour
parent_category_id: 7, # Je niche plusieurs catégories sous la #7
)
Évidemment, je ne connais pas toujours non plus le nom de la catégorie. Je dois absolument le rechercher avant de mettre à jour la catégorie.
Il serait pratique que ces paramètres ne soient pas obligatoires. Sinon, pourrait-il exister une sorte de syntaxe pour indiquer « Je ne souhaite pas modifier ce champ » ? Par exemple, si vous passez _, cela attribuerait simplement la valeur actuelle à cet attribut. (Je ne connais pas la raison pour laquelle ces champs sont obligatoires, je propose donc des idées qui peuvent ou non être utiles.)