试图加载未指定的类:ActiveSupport::TimeWithZone - Psych::DisallowedClass

问题描述 投票:0回答:2

有谁知道如何解决这个异常?不确定它是否相关,但它落在从

#discard
gem 调用的
discard
方法上。

if object.discard
   # Psych::DisallowedClass:
   #   Tried to load unspecified class: ActiveSupport::TimeWithZone

我已经尝试将以下每个配置设置添加到 config/application.rb 但问题仍然存在(没有弹簧运行,没有预加载)

# config.active_record.yaml_column_permitted_classes = [Symbol, Hash, Array, ActiveSupport::HashWithIndifferentAccess, ActiveSupport::TimeWithZone, Time]
# config.active_record.use_yaml_unsafe_load
# config.active_support.use_yaml_unsafe_load

Ruby 版本:3.1.2 | Rails 版本:6.1.7

相关问题:

升级到 Ruby 3.1 会在使用 YAML.load_file 时导致 Psych::DisallowedClass 异常

作为临时解决方法,我已经回滚到

6.1.6
Rails 版本,但我正在寻找解决此问题的合适方法。

ruby-on-rails yaml activesupport
2个回答
2
投票

将以下内容添加到文件

config/application.rb
.

config.active_record.yaml_column_permitted_classes = [Symbol, Date, Time, ActiveSupport::TimeWithZone, ActiveSupport::TimeZone]

应该可以解决问题。然后重新启动服务器和

reload!
Rails 控制台以确保其正常工作。

感谢以上提供此解决方案的评论


-1
投票

对我有用!谢谢!!!!

© www.soinside.com 2019 - 2024. All rights reserved.