Robin,
Je prépare actuellement une PR pour le plugin Discord OAuth, principalement afin de stocker davantage d’informations sur les utilisateurs Discord dans Discourse. J’essaie d’utiliser votre modèle ReviewableUser pour conserver la fonctionnalité d’approbation automatisée.
Comme l’implémentation actuelle crée une revue pour les nouveaux utilisateurs de manière asynchrone, je dois vérifier si une telle revue a été créée et la supprimer.
Malheureusement, je rencontre une erreur Ruby très étrange et je me demandais si vous l’aviez déjà rencontrée.
Le code est le suivant :
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
Dès que j’exécute ReviewableUser.find_by, une exception est levée :
*** NameError Exception: wrong constant name #<Class:0x000056134e417870>::DiscordAuthenticator
Bien que je pense faire de bons progrès en Ruby, je ne comprends pas pourquoi cela se produit.
Est-ce un problème de chemin ? J’ai essayé plusieurs require, mais cela empire rapidement.
Cela ressemble beaucoup à des modèles similaires ailleurs dans le code de base. Toute suggestion serait grandement appréciée !
Le dépôt est disponible ici si nécessaire : discourse-plugin-discord-auth/plugin.rb at master · merefield/discourse-plugin-discord-auth · GitHub