Ich finde das auch etwas ärgerlich. Wenn ich andere Informationen über eine Kategorie aktualisiere, kenne ich nicht unbedingt die color und text_color der Kategorie. Meine Optionen sind also, beides auf etwas Harmloses zu ändern oder einen weiteren API-Aufruf hinzuzufügen, um diese Informationen zunächst zu sammeln. Hier ist ein Beispiel mit dem 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'],
# Füge unten das Attribut (oder die Attribute) hinzu, das (die) du tatsächlich aktualisieren möchtest
parent_category_id: 7, # Ich verschachtle eine Reihe von Kategorien unter #7
)
Offensichtlich kenne ich auch nicht immer den Kategorienamen. Ich muss diesen definitiv vor der Aktualisierung der Kategorie nachschlagen.
Es wäre hilfreich, wenn diese Parameter nicht erforderlich wären. Alternativ gäbe es vielleicht eine Syntax, um anzuzeigen: „Ich möchte das Feld nicht ändern“? Zum Beispiel, wenn man _ übergibt, wird das Attribut einfach auf den aktuellen Wert gesetzt. (Ich bin mir nicht sicher, warum diese Felder erforderlich sind, daher bringe ich Ideen ein, die nützlich sein könnten oder auch nicht.)