Modifica livello di fiducia per tutti gli utenti

Ecco un esempio di operazione in blocco per impostare il livello di fiducia a 2 per tutti gli utenti attualmente al livello di fiducia 0 o 1:

Questo è lento, ma attiva correttamente tutti gli effetti collaterali (aggiornamenti dell’appartenenza ai gruppi, assegnazione di badge e registrazione). Potrebbe essere preferito soprattutto quando si hanno meno di 1000 utenti. Nota: questo non salta gli utenti con livelli di fiducia bloccati manualmente: aggiungi .where(manual_locked_trust_level: nil) alla query se vuoi saltarli.

User.where(trust_level: [0, 1]).find_each do |user|
   user.change_trust_level!(TrustLevel[2])
end

Se ci fossero più di 1000 utenti, avrei usato questo invece, ma questo ignora tutti gli effetti collaterali (aggiornamenti di gruppo, badge, registrazione) e non rispetta i livelli di fiducia bloccati.

DB.exec("UPDATE users SET trust_level = 2 WHERE trust_level IN (0, 1)")
22 Mi Piace