【问题标题】:Psych::DisallowedClass while updating a rails ActiveModel entry更新 rails ActiveModel 条目时的 Psych::DisallowedClass
【发布时间】:2020-10-15 19:45:42
【问题描述】:

这有点奇怪,我正在尝试通过rails_admin 控制台更新 ActiveModel 条目,更新模型上的任何属性都会引发错误Psych::DisallowedClass。在我看来,只有当模型具有一些序列化字段时才会引发错误。我不确定Psych 库是如何进入引擎盖下的序列化场景的,所以在这里寻找一些指针。

谢谢!

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-6


    【解决方案1】:

    从 gem 版本 psych 4.0 开始,有解析 YAML 文件的严格方法。因此,要么使用旧版本的 psych,将 permitted_classes 参数传递给 #load 方法以允许该类,但您遇到了异常为:

    YAML.load(txt, permitted_classes: [Gem::Specification, Symbol])
    

    【讨论】:

    • 在哪里写这个?
    • @RajeshPaul 而不是 YAML.load
    猜你喜欢
    • 2022-07-14
    • 1970-01-01
    • 2022-07-14
    • 2013-10-07
    • 2023-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    相关资源
    最近更新 更多