コンソール経由で非カスタムバッジを付与する

:bookmark: このガイドでは、Discourse コンソールを通じて非カスタムバッジを付与する方法を説明します。

:person_raising_hand: 必要なユーザーレベル:システム管理者

:warning: コンソールアクセスが必要です

特定の状況では、コンソールからデフォルトの Discourse バッジを手動でユーザーに付与する必要がある場合があります。例えば、ユーザーが 10 日連続でフォーラムにアクセスしていないため「熱心なユーザー(Enthusiast)」バッジが取得できないことがあり、これはユーザーの現地時間とサーバーの UTC 時間の間のタイムゾーンの違いが原因である可能性があります。

このドキュメントでは、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