Comentarios sobre la nueva cola de revisión (2019)

Robin,

Actualmente estoy preparando una PR para el plugin de OAuth de Discord, principalmente para almacenar más información del usuario de Discord en Discourse. Estoy intentando usar tu modelo ReviewableUser para mantener la funcionalidad que implementa la aprobación automatizada.

Dado que la implementación actualmente crea una revisión para nuevos usuarios de forma asíncrona, necesito verificar si se ha creado dicha revisión y eliminarla.

Desafortunadamente, estoy obteniendo un error muy extraño de Ruby y me preguntaba si te ha ocurrido algo similar.

El código es:

  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

En cuanto se ejecuta ReviewUser.find_by, obtengo una excepción:

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

Aunque pensé que estaba avanzando bien en Ruby, no tengo claro por qué está ocurriendo esto.

¿Podría ser un problema de rutas? He probado varios require, pero eso solo complica más las cosas.

Es muy similar a patrones similares en otras partes del código principal. ¡Agradezco mucho cualquier opinión!

El repositorio está aquí si lo necesitas: discourse-plugin-discord-auth/plugin.rb at master · merefield/discourse-plugin-discord-auth · GitHub