Führen Sie die zweite Zeile des untenstehenden Codes zweimal aus.
Fall 1
up = UserUpdater.new(Discourse.system_user, User.find(1))
up.update({:custom_fields=>{:user_field_1=>"abc"}})
Sie sehen abc zweimal, wenn Sie zu /my/preferences/profile navigieren.
Überraschenderweise funktioniert die Aktualisierung des Profils über /my/preferences/profile einwandfrei.
Fall 2
Dies scheint einwandfrei zu funktionieren
up = UserUpdater.new(Discourse.system_user, User.find(1))
params = ActionController::Parameters.new({:custom_fields=>{:user_field_1=>"abc"}})
up.update(params.permit!)
Was passiert, ist: Im Fall 1 wird der Wert in ein Array eingefügt und auf /my/preferences/profile als durch Kommas getrennte Werte angezeigt.
Fall 2 scheint das Richtige zu tun, d. h. den aktuellen Wert durch den neuen zu ersetzen, aber das Einpacken in ActionController::Parameters ist unnatürlich.