在我的一个 Rails 模型中,我保存了一个 Marshal 序列化的类数组。如果我更改其中一个类的名称,Marshal 将不再能够反序列化数组。有没有办法获得数组中未更改的部分?
以下是如何在 IRB 中模拟我的问题
$ irb
> require 'set'
> tmp = Marshal.dump [Hash, Fixnum, Set]
> => "\x04\b[\bc\tHashc\vFixnumc\bSet"
> Marshal.load "\x04\b[\bc\tHashc\vFixnumc\bSet"
> => [Hash, Fixnum, Set] - like I want
> exit
$ irb
> Marshal.load "\x04\b[\bc\tHashc\vFixnumc\bSet"
> # throws error, but what I want is [Hash, Fixnum], or even [Hash, Fixnum, nil]
有什么办法可以让我做到这一点?