通过控制台授予非自定义徽章

:bookmark: 本指南介绍如何通过 Discourse 控制台颁发非自定义徽章。

:person_raising_hand: 所需用户级别:系统管理员

:warning: 需要控制台访问权限

在特定场景下,您可能需要手动从控制台向用户颁发默认的 Discourse 徽章。例如,由于用户本地时间与服务器 UTC 时间之间的时区差异,用户可能因连续 10 天访问论坛而未能获得“狂热者(Enthusiast)”徽章。

本文档提供了通过 Rails 控制台手动颁发非自定义徽章的分步指南,以确保这些徽章不会被系统自动撤销。

检查可自动撤销的徽章

在颁发徽章之前,请确保该徽章不会被系统自动撤销。在 Rails 控制台中运行以下命令以获取此类徽章的列表:

Badge.where(auto_revoke: false).pluck(:name)

该命令将显示非自动撤销徽章的列表,包括:

  • “首次标记(First Flag)”
  • “感谢(Thank You)”
  • “回馈(Gives Back)”
  • “共情(Empathetic)”
  • “出于爱(Out of Love)”
  • “更高的爱(Higher Love)”
  • “狂热之爱(Crazy in Love)”
  • “鉴赏家(Aficionado)”
  • “奉献者(Devotee)”
  • “狂热者(Enthusiast)”
  • “读者(Reader)”
  • “周年纪念(Anniversary)”
  • “受赏识(Appreciated)”
  • “受尊重(Respected)”
  • “受钦佩(Admired)”

颁发徽章

要从列表中授予徽章,请按照以下步骤操作:

  1. 通过用户名查找用户:

    运行以下命令,将 enthusiastic_user 替换为实际用户名:

    user = User.find_by(username: 'enthusiastic_user')
    
  2. 按名称查找徽章:

    例如,要查找“狂热者(Enthusiast)”徽章,请使用:

    badge = Badge.find_by(name: "Enthusiast")
    
  3. 向用户授予徽章:

    最后,使用以下命令向用户颁发徽章:

    BadgeGranter.grant(badge, user)
    
17 个赞