要获得哈希,我有这个:
serialize :colors, Hash
但我有一个错误,其中此属性的结果如下所示:
为了表明这一点,我拿出了" Hash"来自"序列化:颜色,哈希"在控制台中查看错误。
"--- !map:ActiveSupport::HashWithIndifferentAccess \none: \"#87466d\"\ntwo: \"#307065\"\nthree: \"#c04992\"\nfour: \"#ffffff\"\nfive: \"#636467\"\n"
不确定发生了什么,但看起来Hash已成为一个字符串而我不会'知道为什么。我以前没有遇到这个问题,但我现在有两个版本的项目,第一个是在rails 2中,另一个是在rails 3中,我在两者之间切换。我觉得自从进入rails 3并回到rails 2后发生了错误。任何人都知道如何解决这个错误以及它为什么会发生错误?
我看了一篇类似的帖子但它没有帮助我: "Attribute was supposed to be a Hash, but was a String"
答案 0 :(得分:0)
好的,所以我通过进入数据库并将属性设置为NULL来修复它,以便清除它。当我使用MySQL时,我做了以下事情:
打开Mysql
mysql -u root -D database_name -p
更新了Mysql中的属性以重置值:
UPDATE colors_table SET colors = null WHERE id = 1;
然后我能够无错误地更新rails控制台中的值。