通过 Ruby 控制台批准新用户 - 20200613.042854

这在 3 月左右还能正常工作,现在却因某种原因失败了。

ReviewableUser.find_by(target:user).perform(csmu, :approve_user)
NoMethodError: undefined method `perform' for nil:NilClass

user 和 csmu 是有效的对象。
我们当前使用的是 2.4.0.beta11 版本,计划下周升级到最新的 beta 版本。

有什么建议吗?

@Keith

我的建议是在测试服务器上安装最新版本的 Discourse,然后使用当前生产环境的完整备份(包括上传文件)恢复该测试服务器上 Discourse 实例的数据库。

之后,你可以在安全的测试环境中先测试该实例,看看运行情况如何。

我们就是这么做的。

希望这能帮到你。

我认为问题在于未激活用户。

以下代码可以正常工作:

admin_user = User.find_by_username('{{admin_username}}')

user = User.create
user.name = '{{name}}'
user.username = '{{username}}'
user.email = '{{email}}'
user.password = '{{password}}'
user.activate
user.admin = true
user.moderator = true
user.save!

ReviewableUser.find_by(target:user).perform(admin_user, :approve_user)