Passi per riprodurre:
- Creiamo un campo utente con id
1. - Esegui due volte la seconda riga del codice sottostante.
Caso 1
up = UserUpdater.new(Discourse.system_user, User.find(1))
up.update({:custom_fields=>{:user_field_1=>
Passi per riprodurre:
1.up = UserUpdater.new(Discourse.system_user, User.find(1))
up.update({:custom_fields=>{:user_field_1=>
Questo sembra effettivamente un bug valido e dovrebbe essere risolto, grazie per averlo segnalato!
La mia analisi si riduce a questo.
# caso 1
u1 = User.find(1)
u1.custom_fields[:user_field_1] = "abc"
u1.save
# caso 2
u1.custom_fields["user_field_1"] = "abc"
u1.save
Nel caso 1, viene creato un nuovo UserCustomField per ogni chiamata a u1.save
Nel caso 2, tutti i UserCustomField con il nome âuser_field_1â vengono eliminati dal database
tranne quello specificato.
![]()
In sintesi, le versioni symbol e string della stessa chiave vengono trattate in modo diverso nel mixin HasCustomFields.
Ok, lâho fatto. Ecco la PR che risolve il problema
Ok, quindi questa è stata unita.