2014-08-25 2 views
0

Как преобразовать эту строку (это одна строка из db) в хэш с массивом?Как преобразовать строку в хэш с массивом?

--- 
fl: 
- 
- 500.0 
price: 
- 2162.72 
- 2152.72 
period: 
- 
- 3 weeks 

Я получил эту информацию, делая это:

changes_data = box.changes.to_hash 
changes_data.each do |key, val| 
    if val[0].eql? val[1] 
    changes_data.delete(key) 
    else 
    changes_data[key] = val.to_a 
    end 
end 

Но теперь я не знаю, как преобразовать обратно. Я хочу, чтобы получить это возможно:

{:fl => ['0', '500.0'], :price=>['2162.72','2152.72'],.......} 

или преобразовать в объект box

+0

вы используете ОРМ в комментарий к базе данных (например, как ActiveRecord)? –

+0

думаю нет. Если вы правильно поняли. – user3834491

+1

Разве это не YAML? –

ответ

1

Похоже, ваши данные только YAML. Таким образом, вы можете сделать это:

require 'yaml' 

serialized_str = ... # retrieve the serialized string from the database 
deserialized_hash = YAML.parse(serialized_str).to_ruby 

deserialized_hash.class # => Hash 

Ruby Docs

+0

Большое спасибо! – user3834491

Смежные вопросы