有谁知道如何解决这个异常?不确定它是否相关,但它落在从
#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 版本,但我正在寻找解决此问题的合适方法。
将以下内容添加到文件
config/application.rb
.
config.active_record.yaml_column_permitted_classes = [Symbol, Date, Time, ActiveSupport::TimeWithZone, ActiveSupport::TimeZone]
应该可以解决问题。然后重新启动服务器和
reload!
Rails 控制台以确保其正常工作。
感谢以上提供此解决方案的评论。
对我有用!谢谢!!!!