Ruby on rails 从Rails 4升级到5-如何在postgres的jsonb列中存储json文件

Ruby on rails 从Rails 4升级到5-如何在postgres的jsonb列中存储json文件,ruby-on-rails,postgresql,jsonb,Ruby On Rails,Postgresql,Jsonb,我正在将rails应用程序从4.2升级到5.0,似乎ActiveRecord在postgres的jsonb列中存储json对象的方式发生了巨大的变化 在my postgres db中,每个表都有一个名为“metadata”的jsonb列 在4.2中,我可以使用ruby哈希将任何内容放入元数据列中——这非常简单,使用mongodb之类的东西变得无关紧要 因此,例如,在“Subs”类/对象/表上,我可以让“元数据”包含以下内容: {“读者”:79,“主持人”:[“管理员”]} 在ruby中,我可以做

我正在将rails应用程序从4.2升级到5.0,似乎ActiveRecord在postgres的jsonb列中存储json对象的方式发生了巨大的变化

在my postgres db中,每个表都有一个名为“metadata”的jsonb列

在4.2中,我可以使用ruby哈希将任何内容放入元数据列中——这非常简单,使用mongodb之类的东西变得无关紧要

因此,例如,在“Subs”类/对象/表上,我可以让“元数据”包含以下内容:

{“读者”:79,“主持人”:[“管理员”]}

在ruby中,我可以做如下事情

主持人=[“一”、“两”等] @sub.metadata[“版主”]=版主

然后保存它

rails 5.0似乎改变了一切

现在,当我运行相同的代码时,“元数据”列如下所示:

"{\"moderators\" : [\"administrator\"]}"
我尝试将db迁移脚本更改为使用默认值:{}而不是默认值:“{}”,但每当我运行迁移时,它仍然会转义json对象并将其视为字符串

我敢肯定,如果我真的让所有东西都运行起来,并且能够保存任何东西,它也会这样做

在使用json时,它对用户会话也做同样的事情

我需要帮助,因为很明显我做错了什么。我知道rails改变了json的处理方式,以符合如此随机的RFC,但必须有一个简单的解决方案

在rails 4.2中,jsonb是一种天才,但现在不是这样了

任何帮助都将不胜感激