首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ActiveRecord::SerializationTypeMismatch:属性应该是一个哈希,但它是一个字符串

问ActiveRecord::SerializationTypeMismatch:属性应该是一个哈希,但它是一个字符串
EN

Stack Overflow用户
提问于 2017-11-16 10:42:55
回答 1查看 1.3K关注 0票数 2

为了得到一个哈希,我有一个:

代码语言:javascript
复制
serialize :colors, Hash

但是我有一个错误,这个属性的结果如下所示:

为了显示这一点,我从“序列化:颜色,哈希”中取出了"Hash“,以查看控制台中的错误。

代码语言:javascript
复制
"--- !map:ActiveSupport::HashWithIndifferentAccess \none: \"#87466d\"\ntwo: \"#307065\"\nthree: \"#c04992\"\nfour: \"#ffffff\"\nfive: \"#636467\"\n"

不知道发生了什么,但似乎哈希已经成为一个字符串,我不知道为什么。我以前没有这个问题,但是我现在有两个版本的这个项目,第一个在rails 2中,另一个在rails 3中,我在这两个版本之间切换。我觉得这个错误发生在rails 3和rails 2之后。有人知道我如何修复这个错误以及为什么会发生这个错误吗?

我看了一篇类似的文章,但这并没有帮助我:"Attribute was supposed to be a Hash, but was a String"

EN

回答 1

Stack Overflow用户

发布于 2017-11-17 11:01:05

好的,我通过进入数据库并将属性设置为NULL来修正它,这样它就会清除它。当我使用MySQL时,我做了以下工作:

  • 开放Mysql mysql -u root -D database_name -p
  • 更新Mysql中的属性以重置值: 更新colors_table集合颜色= null,其中id = 1;

然后,我能够在没有错误的情况下更新rails控制台中的值。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47327545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档