1

在 Rails 应用程序中,我尝试在 postgreSql hstore 列中存储二维哈希,但对于输出,我得到类似

{"6/5"=>"{\"color\"=>\"white\"}", "8/1"=>"{\"color\"=>\"white\"}", " 8/2"=>"{\"color\"=>\"white\"}", "8/3"=>"{\"color\"=>\"white\"}"}。

如何获得二维哈希作为输出,或者您可以就如何解析它提供一些建议?

4

2 回答 2

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"=> "白色"}, "8/3"=>{"颜色"=>"白色"}}

于 2013-02-16T11:38:51.157 回答
0

要在 sql 数据库中存储哈希,可以使用字符串列并将这一行添加到模型中:

serialize :my_hash_thingy

它应该在后台处理每个序列化/反序列化,并且每次使用它时都会正常进行哈希处理。

于 2013-02-16T10:26:05.350 回答