Ruby on rails ActiveRecord::SerializationTypeMismatch:属性应为哈希,但为字符串

Ruby on rails ActiveRecord::SerializationTypeMismatch:属性应为哈希,但为字符串,ruby-on-rails,ruby-on-rails-3,activerecord,hash,ruby-on-rails-2,Ruby On Rails,Ruby On Rails 3,Activerecord,Hash,Ruby On Rails 2,要获得哈希值,我有以下内容: serialize :colors, Hash 但我有一个错误,该属性的结果如下所示: 为了显示这一点,我从“serialize:colors,Hash”中取出“Hash”以查看控制台中的错误 不知道发生了什么,但看起来散列已经变成了一个字符串,我不知道为什么。我以前没有这个问题,但现在我有了这个项目的两个版本,第一个在rails 2中,另一个在rails 3中,我在这两个版本之间切换。我觉得在进入Rails3并返回Rails2之后,这个错误就发生了。有人知道我如

要获得哈希值,我有以下内容:

serialize :colors, Hash
但我有一个错误,该属性的结果如下所示:

为了显示这一点,我从“serialize:colors,Hash”中取出“Hash”以查看控制台中的错误

不知道发生了什么,但看起来散列已经变成了一个字符串,我不知道为什么。我以前没有这个问题,但现在我有了这个项目的两个版本,第一个在rails 2中,另一个在rails 3中,我在这两个版本之间切换。我觉得在进入Rails3并返回Rails2之后,这个错误就发生了。有人知道我如何修复此错误以及发生此错误的原因吗

我看了一篇类似的帖子,但没有帮到我:

好的,所以我通过进入数据库并将属性设置为NULL来修复它,以便清除它。在使用MySQL时,我做了以下工作:

  • 打开Mysql

    mysql-u root-D数据库\u name-p

  • 更新Mysql中的属性以重置值:

    更新颜色\u表格集合颜色=null,其中id=1

然后,我能够在rails控制台中无错误地更新这些值

"--- !map:ActiveSupport::HashWithIndifferentAccess \none: \"#87466d\"\ntwo: \"#307065\"\nthree: \"#c04992\"\nfour: \"#ffffff\"\nfive: \"#636467\"\n"