Diese Anleitung erklärt, wie man über die Discourse-Konsole ein nicht benutzerdefiniertes Abzeichen vergibt.
Erforderliche Benutzerstufe: Systemadministrator
Zugriff auf die Konsole erforderlich
In bestimmten Szenarien müssen Sie möglicherweise standardmäßige Discourse-Abzeichen manuell einem Benutzer über die Konsole zuweisen. Beispielsweise erhält ein Benutzer das Abzeichen „Enthusiast" möglicherweise nicht, weil er ein Forum 10 aufeinanderfolgende Tage besucht hat, eventuell aufgrund von Zeitzonenunterschieden zwischen der lokalen Zeit des Benutzers und der UTC-Zeit des Servers.
Diese Dokumentation bietet eine schrittweise Anleitung zur manuellen Vergabe von nicht benutzerdefinierten Abzeichen über die Rails-Konsole, um sicherzustellen, dass diese Abzeichen nicht automatisch widerrufen werden.
Überprüfen automatisch widerrufbarer Abzeichen
Bevor Sie ein Abzeichen vergeben, stellen Sie sicher, dass es nicht automatisch vom System widerrufen wird. Führen Sie den folgenden Befehl in der Rails-Konsole aus, um eine Liste solcher Abzeichen zu erhalten:
Badge.where(auto_revoke: false).pluck(:name)
Dieser Befehl zeigt eine Liste von nicht automatisch widerrufbaren Abzeichen an, darunter:
- „First Flag"
- „Thank You"
- „Gives Back"
- „Empathetic"
- „Out of Love"
- „Higher Love"
- „Crazy in Love"
- „Aficionado"
- „Devotee"
- „Enthusiast"
- „Reader"
- „Anniversary"
- „Appreciated"
- „Respected"
- „Admired"
Vergabe eines Abzeichens
Um ein Abzeichen aus dieser Liste zu erteilen, gehen Sie wie folgt vor:
-
Benutzer nach Benutzernamen finden:
Führen Sie den folgenden Befehl aus und ersetzen Sie
enthusiastic_userdurch den tatsächlichen Benutzernamen:user = User.find_by(username: 'enthusiastic_user') -
Abzeichen nach Name suchen:
Um beispielsweise das Abzeichen „Enthusiast" zu finden, verwenden Sie:
badge = Badge.find_by(name: "Enthusiast") -
Abzeichen an den Benutzer vergeben:
Schließlich weisen Sie dem Benutzer das Abzeichen mit diesem Befehl zu:
BadgeGranter.grant(badge, user)