Ruby on rails Rails JSON存储值在保存时被引用
我在PostgreSQL实例上运行的Rails(5.1.6)应用程序有这个问题 我有一个带有JSON类型列的模型(Ruby on rails Rails JSON存储值在保存时被引用,ruby-on-rails,json,ruby,postgresql,Ruby On Rails,Json,Ruby,Postgresql,我在PostgreSQL实例上运行的Rails(5.1.6)应用程序有这个问题 我有一个带有JSON类型列的模型(t.JSON:meta)。该模型有一个存储访问器,如 store:meta,accessor:[:title],coder:JSON 现在的问题是,当我设置这个值时,它在数据库中显示为 “{\“title\:\“我是一个title\”}” 将其设置为文本而不是JSON值,这反过来使我无法使用JSON查询运算符(->)查询JSON字段。我已经尝试不使用coder选项,但这导致它被保存为
t.JSON:meta
)。该模型有一个存储访问器,如
store:meta,accessor:[:title],coder:JSON
现在的问题是,当我设置这个值时,它在数据库中显示为
“{\“title\:\“我是一个title\”}”
将其设置为文本而不是JSON值,这反过来使我无法使用JSON查询运算符(->
)查询JSON字段。我已经尝试不使用coder选项,但这导致它被保存为YAML。
serialize函数对我来说也没有任何改变(添加serialize:meta,JSON
)
感谢您的任何帮助 和不用于本机JSON列。它们的目的是将数据封送和取消封送到字符串列中
在原生JSON支持存在之前(并且由ActiceRecord支持),这是一个“穷人”JSON存储。正如您所注意到的,在JSON列上使用它将产生一个双编码字符串
使用JSON列实际上不需要做任何事情。它由适配器处理
见:
meta[“title”]
来回答我自己的问题<代码>存储访问器执行此操作。