【发布时间】:2020-10-15 19:45:42
【问题描述】:
这有点奇怪,我正在尝试通过rails_admin 控制台更新 ActiveModel 条目,更新模型上的任何属性都会引发错误Psych::DisallowedClass。在我看来,只有当模型具有一些序列化字段时才会引发错误。我不确定Psych 库是如何进入引擎盖下的序列化场景的,所以在这里寻找一些指针。
谢谢!
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-6
这有点奇怪,我正在尝试通过rails_admin 控制台更新 ActiveModel 条目,更新模型上的任何属性都会引发错误Psych::DisallowedClass。在我看来,只有当模型具有一些序列化字段时才会引发错误。我不确定Psych 库是如何进入引擎盖下的序列化场景的,所以在这里寻找一些指针。
谢谢!
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-6
从 gem 版本 psych 4.0 开始,有解析 YAML 文件的严格方法。因此,要么使用旧版本的 psych,将 permitted_classes 参数传递给 #load 方法以允许该类,但您遇到了异常为:
YAML.load(txt, permitted_classes: [Gem::Specification, Symbol])
【讨论】: