2012-04-22 24 views
1

我從ruby 1.8.7升級到ruby 1.9.3。我注意到YAML序列化字段的讀取方式有所不同。我的許多序列化字符串被強制轉換爲新的YAML格式的整數。例如:使用YAML序列化文本字段的Ruby 1.9遷移

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 

這是什麼原因造成的?有沒有辦法在新的ruby中恢復舊的行爲,或者將我的字段遷移到新的格式?

回答

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" 
+0

謝謝!那就是訣竅。 – aaronjg 2012-04-22 18:26:04