Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何使用数组将字符串转换为哈希?_Ruby On Rails_Ruby_Arrays - Fatal编程技术网

Ruby on rails 如何使用数组将字符串转换为哈希?

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

如何将这个字符串(它是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'],.......}

或者转换为对象

看起来您的数据只是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。抱歉,我刚开始学习。您是在模型中使用
序列化
,还是在字符串列中添加一些随机哈希?