1

ルビー1.8.7からルビー1.9.3にアップグレードしています。YAMLシリアル化フィールドの読み取り方法に違いがあることに気づきました。シリアル化された文字列の多くは、新しいYAML形式の整数に強制変換されています。例えば:

1.8.7 :010 > "2011_01".to_yaml
 => "--- 2011_01\n" 
1.8.7 :011 > YAML.load("--- 2011_01\n")

1.9.3p125 :001 > YAML.load("--- 2011_01\n")
 => 201101 

これを引き起こしているのは何ですか?新しいルビーの古い動作に戻す方法、またはフィールドを新しい形式に移行する方法はありますか?

4

1 に答える 1

2

syckパーサーとして使用してみてください。

ruby-1.9.3-rc1 :001 > YAML::ENGINE.yamler = "syck"
 => "syck" 
ruby-1.9.3-rc1 :002 > YAML.load("--- 2011_01\n")
 => "2011_01"
于 2012-04-22T17:38:26.027 に答える