Tôi có một băm:Làm thế nào tôi có thể tuần tự hóa - deserialize một băm để lưu nó trong cơ sở dữ liệu?
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"
}
Tôi muốn lưu nó trong một cơ sở dữ liệu với lệnh sau đây: h.to_s
Sau đó, tôi muốn có được các nội dung từ cơ sở dữ liệu và làm việc với nó như băm.
s = MyModel[:field_which_contains_hash_string]
tôi đã cố gắng để tải nội dung với YAML::load s
nhưng tôi nhận được một lỗi:
Psych::SyntaxError: (<unknown>): found unexpected ':' while scanning a plain scalar at line 1 column 96
Tôi đoán đó là do ruột kết trong chuỗi thời gian. Vì vậy, cách tốt nhất để duy trì băm và lấy lại nó là gì?
Trợ giúp được đánh giá cao. Tốt nhất, Philip
Nếu bạn sử dụng 'YAML.load 'sau đó không làm' h.to_s', sử dụng 'h.to_yaml' – aromero