在升级到 Ruby 3.1 时,当使用 YAML.load_file some_file_name
时,我看到以下排序错误信息
Psych::DisallowedClass:
Tried to load unspecified class: Matrix
其他加载语句也会引起类似的错误,但引用不同的未指定类,例如OpenStruct。看起来最新版本的YAML仅从允许的白名单中加载类,因此需要使用permitted_class关键字来允许其他类。我已经尝试过。
hsh = YAML.load_file some_file_name, permitted_classes: [Matrix, OpenStruct]
但是这会导致错误。
Psych::DisallowedClass:
Tried to load unspecified class: Symbol
我该如何修复这个问题?