2012-07-30 2 views
9

나는 해시를 가지고 :해시를 비 직렬화하여 데이터베이스에 저장하려면 어떻게해야합니까?

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 

내가 그건 생각합니다. 해시를 유지하고 다시 검색하는 가장 좋은 방법은 무엇입니까?

도움을 주시면 감사하겠습니다. 최고, 필립

+0

를 사용하여 컬럼으로 직렬화됩니다

my_model = MyModel.new my_model.column_name[:key] = value my_model.column_name[:key] 

''h.to_s'를하지 말고,'h.to_yaml'을 사용하십시오. – aromero

답변

관련 문제