Ruby on rails 如何使用数组将字符串转换为哈希?
如何将这个字符串(它是db中的一个字符串)转换为带有数组的散列Ruby on rails 如何使用数组将字符串转换为哈希?,ruby-on-rails,ruby,arrays,Ruby On Rails,Ruby,Arrays,如何将这个字符串(它是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 chan
---
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'],.......}
或者转换为对象
框
看起来您的数据只是YAML。所以你可以这样做:
require 'yaml'
serialized_str = ... # retrieve the serialized string from the database
deserialized_hash = YAML.parse(serialized_str).to_ruby
deserialized_hash.class # => Hash
您是否使用ORM对数据库(如ActiveRecord)进行注释?我想不是。如果你理解正确的话。我有两个目标。对它们进行了比较,并将差异以单独的方式发送到数据库。是的,似乎你是对的。这是YML。抱歉,我刚开始学习。您是在模型中使用
序列化
,还是在字符串列中添加一些随机哈希?