关于新的审核队列(2019)的反馈

Robin,

我目前正在为 Discord OAuth 插件 准备一个拉取请求(PR),主要目的是在 Discourse 中存储更多的 Discord 用户信息。我尝试使用你的 ReviewableUser 模型,以保留实现自动审批的功能。

由于当前实现是异步地为新用户创建审核记录,我需要检查是否已创建此类审核记录并将其清除。

不幸的是,我遇到了一个非常奇怪的 Ruby 错误,不知道你是否遇到过类似情况。

代码如下:

  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

一旦执行到 ReviewableUser.find_by,就会抛出异常:

*** NameError 异常:错误的常量名称 #<Class:0x000056134e417870>::DiscordAuthenticator

虽然我原本以为自己在 Ruby 方面已经取得了不错的进展,但我不清楚为什么会发生这种情况?

是路径问题吗?我尝试过多种 require 方式,但问题反而变得更复杂了。

这与核心代码中的其他类似模式非常相似。非常感谢任何建议!

如果需要,这是我的仓库地址:discourse-plugin-discord-auth/plugin.rb at master · merefield/discourse-plugin-discord-auth · GitHub