ruby-on-rails Rails wisper-sidekiq不适用于异步作业

evrscar2  于 2023-06-25  发布在  Ruby
关注(0)|答案(1)|浏览(110)

有人可以帮助我吗?我在我的gemfile中添加了wisper-sidekiq,当我尝试使用async广播事件时:true它因错误而失败
Psych::DisallowedClass:尝试加载未指定的类:Listener::Studentlistener而如果我设置async:假的,它工作正常
wisper-sidekiq版本:1.0 sidekiq版本:6.5 rails版本:6.1
我尝试设置async:false它工作正常,但当我设置async时:是的,它不起作用

rkkpypqq

rkkpypqq1#

Ruby使用psych gem来处理yaml。在后来的rails版本中,默认设置是未经您的批准不加载任意yaml。
需要添加一个初始化器来告诉psychyaml加载器允许什么。。

Psych::ClassLoader::ALLOWED_PSYCH_CLASSES = [
                                              Listener::Studentlistener
                                            ]

module Psych
  class ClassLoader
    ALLOWED_PSYCH_CLASSES = [] unless defined? ALLOWED_PSYCH_CLASSES
    class Restricted < ClassLoader
      def initialize classes, symbols
        @classes = classes + Psych::ClassLoader::ALLOWED_PSYCH_CLASSES.map(&:to_s)
        @symbols = symbols
        super()
      end
    end
  end
end

相关问题