1

Railsアプリでは、postgreSql hstore列に2次元ハッシュを保存しようとしていますが、出力の場合は次のようになります。

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

2次元ハッシュを出力として取得するにはどうすればよいですか、またはそれを解析する方法についてアドバイスを与えることができますか?

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" => "white"}、 "8/3" => {"color" => "white"}}

于 2013-02-16T11:38:51.157 に答える
0

SQLデータベースにハッシュを格納するには、文字列列を使用して、次の行をモデルに追加します。

serialize :my_hash_thingy

バックグラウンドですべてのシリアル化/逆シリアル化を処理する必要があり、使用するたびに通常どおりハッシュが使用されます。

于 2013-02-16T10:26:05.350 に答える