首页 > 解决方案 > 从字符串 / Ruby 中提取子字符串

问题描述

我从一个名为“apps”的变量中获取数据。

我有这个数据结构:

{"id"=>001,
 "name"=>"test01",
 "users"=>
 [{"id"=>01,
   "name"=>"test02"},
  {"id"=>02,
   "name"=>"test03"}]}

如何从用户子字符串中提取名称值?

我努力了

apps.each do |test|
  data = Hash.new
  data['id'] = test['id']
  data['name'] = test['name']
  data['username'] = test['users.name']
  userdata = data
  userdata.each do |row|
    File.write('test.yaml', row.to_yaml)
  end
end

但这不起作用。

所需的输出将是:

{"id"=>"01", "name"=>"test02","id"=>"02", "name"=>"test03"}

标签: ruby-on-railsruby

解决方案


你只需要require 'yaml'为了在 Hash/Array 类上使用它,你不需要遍历数组或散列,to_yaml已经为你处理了。

require 'yaml'

data = {"id"=>001,
 "name"=>"test01",
 "users"=>
 [{"id"=>01,
   "name"=>"test02"},
  {"id"=>02,
   "name"=>"test03"}]}

File.write('test.yml', data["users"].to_yaml)

推荐阅读