Ich habe einen Hash:Wie kann ich einen Hash serialisieren - deserialisieren, um ihn in der Datenbank zu speichern?
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"
}
Ich mag es in einer Datenbank mit dem folgenden Befehl speichern: h.to_s
Dann würde ich gerne den Inhalt aus der Datenbank erhalten und mit ihm als Hash arbeiten.
s = MyModel[:field_which_contains_hash_string]
Ich habe versucht, den Inhalt mit YAML::load s
aber ich erhalte eine Fehlermeldung zu laden:
Psych::SyntaxError: (<unknown>): found unexpected ':' while scanning a plain scalar at line 1 column 96
I
vermuten, dass in der Zeit-String zum Kolon fällig. Also, was ist der beste Weg, um den Hash persistent zu machen und es wieder abzurufen?
Hilfe ist willkommen. Am besten, Philip
Wenn Sie 'YAML.load verwenden 'dann nicht' h.to_s', verwenden 'h.to_yaml' – aromero