Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.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/2/ionic-framework/2.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:如何重命名为空字符串的哈希键?_Ruby_Hash - Fatal编程技术网

Ruby:如何重命名为空字符串的哈希键?

Ruby:如何重命名为空字符串的哈希键?,ruby,hash,Ruby,Hash,我从我们的API团队得到一个哈希返回,其中包括一个项的空键。响应如下所示: user = [ { 'name' : 'John Doe', 'roles' : { '' : 'admin', 'team2' : 'user' } ] user.roles.each {|r| r['default'] = r.delete('')} 我想将角色['']键重命名为角色['default'],但我找不到这样做的方法。如果我尝试这样的方法: use

我从我们的API团队得到一个哈希返回,其中包括一个项的空键。响应如下所示:

user = [
  {
    'name' : 'John Doe',
    'roles' : {
      '' : 'admin',
      'team2' : 'user'
    }
]
user.roles.each {|r| r['default'] = r.delete('')}
我想将
角色['']
键重命名为
角色['default']
,但我找不到这样做的方法。如果我尝试这样的方法:

user = [
  {
    'name' : 'John Doe',
    'roles' : {
      '' : 'admin',
      'team2' : 'user'
    }
]
user.roles.each {|r| r['default'] = r.delete('')}
它返回
无法将字符串转换为整数


除了重写API返回之外,还有其他方法可以实现这一点吗(我们已经清楚地说明了这一点)。

您不需要在角色上调用每个
。它将枚举所有键/值对。当你只对一双感兴趣时。这应该做到:

user.roles['default'] = user.roles.delete('')
编辑
为什么
用户
变量持有数组?这难道不会让你困惑吗?那不是一个有效的Ruby对象。就是这样。非常感谢!