这有点奇怪,我正试图通过rails_admin
控制台更新ActiveModel条目,而更新模型上的任何属性都会引发错误Psych::DisallowedClass
。在我看来,只有当模型具有一些序列化字段时才会引发错误。我不确定Psych
库是如何进入序列化场景的,所以在这里寻找一些指针。
谢谢!
从rails 5.2.5更新到5.2.8后,我遇到了同样的问题。
我通过添加解决了这个问题
config.active_record.yaml_column_permitted_classes = [Symbol]
在我的CCD_ 5中。
从gem版本psyc4.0开始,有严格的方法来解析YAML文件。因此,要么使用psyc的旧版本,要么将permitted_classes参数传递给#load方法以允许该类,这是的例外:
YAML.load(txt, permitted_classes: [Gem::Specification, Symbol])
该代码是用特定的非标准类加载YAML文档所必需的。因为加载器阻止用户加载一些不安全的类。更多信息可以从YAML的来源中推断出来。