在我的数据库中,我们在一列中有一个序列化值,如下所示
考虑表测试,并且归档为 meta
---------------------------------------------------------------------
ID Name meta
------------------------------------------------------------------------
726345 test - :status: :success
:result: !ruby/object:PG::Result {}
-------------------------------------------------------------------------
使用Active record Test.select('meta').where(:id=> 726345)
投掷错误是:PG::Error Exception: result has been cleared
用于重新生成列名称和ID工作正常。我用结果键找出错误,但我不知道如何解决这个问题。
任何帮助??
Rails - 5.1,ruby - 2.2.5,mysql - 5.6
提前致谢
答案 0 :(得分:0)
在写入时,您序列化了空PG::Result
个对象。在查询时,rails尝试使用PG::Result.new
对其进行反序列化,但失败
> PG::Result.new
PG::Error: result has been cleared
要解决此问题,您只需清除该列即可。无论如何,它没有实际用途。
我真的不明白为什么你从post postgtresql序列化到mysql,虽然