Questa guida spiega come assegnare un badge non personalizzato tramite la console di Discourse.
Livello utente richiesto: Amministratore di sistema
Necessario accesso alla console
In scenari specifici, potrebbe essere necessario assegnare manualmente un badge predefinito di Discourse a un utente dalla console. Ad esempio, un utente potrebbe non ricevere il badge “Enthusiast” per aver visitato un forum per 10 giorni consecutivi, probabilmente a causa della differenza di fuso orario tra l’ora locale dell’utente e l’ora UTC del server.
Questa documentazione fornisce una guida passo passo su come assegnare manualmente badge non personalizzati utilizzando la console Rails, garantendo che questi badge non vengano revocati automaticamente.
Verifica dei badge revocabili automaticamente
Prima di assegnare un badge, assicurati che non venga revocato automaticamente dal sistema. Esegui il seguente comando nella console Rails per ottenere un elenco di tali badge:
Badge.where(auto_revoke: false).pluck(:name)
Questo comando visualizzerà un elenco di badge non revocabili automaticamente, tra cui:
- “First Flag”
- “Thank You”
- “Gives Back”
- “Empathetic”
- “Out of Love”
- “Higher Love”
- “Crazy in Love”
- “Aficionado”
- “Devotee”
- “Enthusiast”
- “Reader”
- “Anniversary”
- “Appreciated”
- “Respected”
- “Admired”
Assegnazione di un badge
Per assegnare un badge da questo elenco, segui questi passaggi:
-
Trova l’utente per nome utente:
Esegui il seguente comando, sostituendo
enthusiastic_usercon il nome utente effettivo:user = User.find_by(username: 'enthusiastic_user') -
Trova il badge per nome:
Ad esempio, per trovare il badge “Enthusiast”, usa:
badge = Badge.find_by(name: "Enthusiast") -
Assegna il badge all’utente:
Infine, assegna il badge all’utente con questo comando:
BadgeGranter.grant(badge, user)