在rails应用程序中,我尝试在postgreSql hstore列中存储2-d哈希,但是对于输出我得到类似
的内容{“6/5”=>“{\”color \“=> \”white \“}”,“8/1”=>“{\”color \“=> \” white \“}”,“8/2”=>“{\”color \“=> \”white \“}”,“8/3”=>“{\”color \“=> \“白色\”}”}。
如何将二维哈希作为输出,或者您可以提供一些如何解析它的建议?
答案 0 :(得分:4)
如果您需要将此转换为哈希,请执行以下操作:
str = {"6/5"=>"{\"color\"=>\"white\"}", "8/1"=>"{\"color\"=>\"white\"}", "8/2"=>"{\"color\"=>\"white\"}", "8/3"=>"{\"color\"=>\"white\"}"}
p str.each_with_object({}){|(k,v),h| h[k] = eval(v)}
结果
{“6/5”=> {“color”=>“white”},“8/1”=> {“color”=>“white”},“8/2”= > {“color”=>“white”},“8/3”=> {“color”=>“white”}}
答案 1 :(得分:0)
要在sql数据库中存储哈希,可以使用字符串列并将此行添加到模型中:
serialize :my_hash_thingy
它应该在后台处理每个序列化/反序列化,每次使用时都会正常散列。