Feedback zur neuen Review Queue (2019)

Robin,

ich bereite derzeit einen PR für das Discord OAuth Plugin vor, um hauptsächlich weitere Discord-Benutzerinformationen in Discourse zu speichern. Ich versuche, dein ReviewableUser-Modell zu verwenden, um die Funktionalität für die automatisierte Freigabe beizubehalten.

Da die Implementierung derzeit asynchron eine Überprüfung für neue Benutzer startet, muss ich prüfen, ob eine solche Überprüfung erstellt wurde, und sie gegebenenfalls löschen.

Leider erhalte ich einen sehr seltsamen Ruby-Fehler und frage mich, ob dir dieser schon einmal begegnet ist.

Der Code lautet:

  def after_create_account(user, auth)
    super
    
    data = auth[:extra_data]
    if !user.approved && data[:auto_approve]
      user.approved = true
      user.approved_by_id = Discourse.system_user.id
      if reviewable_user = ReviewableUser.find_by(target: user)
          reviewable_user.set_approved_fields!(user, Discourse.system_user)
      end
    end
  end

Sobald ReviewUser.find_by aufgerufen wird, erhalte ich eine Ausnahme:

*** NameError Exception: wrong constant name #<Class:0x000056134e417870>::DiscordAuthenticator

Obwohl ich dachte, ich mache in Ruby gute Fortschritte, ist mir nicht klar, warum das passiert.

Ist es ein Pfadproblem? Ich habe eine Reihe von requires ausprobiert, aber das führt nur zu weiteren Problemen.

Es sieht sehr ähnlich aus wie vergleichbare Muster im Core-Code. Jegliche Gedanken dazu wären sehr willkommen!

Falls benötigt, hier das Repository: discourse-plugin-discord-auth/plugin.rb at master · merefield/discourse-plugin-discord-auth · GitHub