ruby 为什么Paper Trail的变更集为空?

vd2z7a6w  于 2023-04-29  发布在  Ruby
关注(0)|答案(2)|浏览(151)

我最近把我的Ruby升级到了3。1.2和Rails到7。0.3.1.
在更改的某个地方,我注意到的一个问题是,我的Paper Trails(paper_trails gem)信息现在不起作用了,至少在细节方面是这样。
没有任何“变更集”数据可用,因此我的测试失败了。

nmpmafwu

nmpmafwu1#

我在使用数据的视图中放置了一个“byebug”,并查找缺少的内容。显然我的“变更集”数据全部丢失了。
使用此链接:
Upgrading to Rails 6.1.6.1 causes Psych::DisallowedClass: Tried to load unspecified class: Symbol
还有这些:
https://github.com/paper-trail-gem/paper_trail/issues/446
https://github.com/ruby/psych/issues/490
我猜这是一个不允许的类问题,我最终坐在该视图断点运行
PaperTrail.serializer.load(change_history_by_month.object_changes)(当然您的参数会有所不同)
直到它输出正确的数据。基本的问题显然是Pysch和几个不允许的类(例如,“Psych::DisallowedClass Exception:尝试加载未指定的类:BigDecimal”),但幸运的是上面会告诉你这些类,你可以把它们添加到config/application中。RB
非常令人沮丧,因为它是所有安静,没有警告或错误。
当然,这些课程也不是无缘无故就被禁止的。允许这些类可能存在安全问题。

zaq34kh6

zaq34kh62#

将此添加到应用程序中。rb:

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

确保重新启动服务器。

相关问题