我有一個哈希:如何序列化 - 反序列化散列以便將其保存在數據庫中?
h = {
"revision"=>7,
"rev"=>"708a4bd5b",
"thumb_exists"=>false,
"bytes"=>246000,
"modified"=>"Sun, 01 Jul 2012 17:09:15 +0000",
"client_mtime"=>"Sun, 01 Jul 2012 17:09:15 +0000",
"path"=>"/Getting Started.pdf",
"is_dir"=>false,
"icon"=>"page_white_acrobat",
"root"=>"dropbox",
"mime_type"=>"application/pdf",
"size"=>"240.2 KB"
}
我想它用下面的命令保存在一個數據庫:h.to_s
後來我想從數據庫獲取內容,並用它作爲哈希工作。
s = MyModel[:field_which_contains_hash_string]
我試圖加載與YAML::load s
的內容,但我得到一個錯誤:
Psych::SyntaxError: (<unknown>): found unexpected ':' while scanning a plain scalar at line 1 column 96
我想這是由於時間字符串結腸。 那麼堅持散列並再次檢索它的最好方法是什麼?
幫助表示讚賞。 Best, Philip
如果你使用'YAML.load序列化入列'那麼不要'h.to_s',使用'h.to_yaml' – aromero 2012-07-30 21:47:44