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/1/ms-access/4.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 修改数组和散列的嵌套散列 {“8933”=> [{“id”=>419, “游戏id”=>8933, “用户id”=>1, “行”=>21, “创建时间”=>2016年11月21日星期一美国东部时间02:27:16-05:00, “更新时间”=>2016年11月21日星期一02:27:16东部标准时间-05:00}, "8690"=> [{“id”=>401, “游戏id”=>8690, “用户id”=>1, “行”=>#, “创建时间”=>2016年11月16日星期三美国东部时间21:55:59-05:00, “更新时间”=>2016年11月16日星期三美国东部时间21:55:59-05:00}_Ruby - Fatal编程技术网 [{“id”=>401, “游戏id”=>8690, “用户id”=>1, “行”=>#, “创建时间”=>2016年11月16日星期三美国东部时间21:55:59-05:00, “更新时间”=>2016年11月16日星期三美国东部时间21:55:59-05:00},ruby,Ruby" /> [{“id”=>401, “游戏id”=>8690, “用户id”=>1, “行”=>#, “创建时间”=>2016年11月16日星期三美国东部时间21:55:59-05:00, “更新时间”=>2016年11月16日星期三美国东部时间21:55:59-05:00},ruby,Ruby" />

Ruby 修改数组和散列的嵌套散列 {“8933”=> [{“id”=>419, “游戏id”=>8933, “用户id”=>1, “行”=>21, “创建时间”=>2016年11月21日星期一美国东部时间02:27:16-05:00, “更新时间”=>2016年11月21日星期一02:27:16东部标准时间-05:00}, "8690"=> [{“id”=>401, “游戏id”=>8690, “用户id”=>1, “行”=>#, “创建时间”=>2016年11月16日星期三美国东部时间21:55:59-05:00, “更新时间”=>2016年11月16日星期三美国东部时间21:55:59-05:00}

Ruby 修改数组和散列的嵌套散列 {“8933”=> [{“id”=>419, “游戏id”=>8933, “用户id”=>1, “行”=>21, “创建时间”=>2016年11月21日星期一美国东部时间02:27:16-05:00, “更新时间”=>2016年11月21日星期一02:27:16东部标准时间-05:00}, "8690"=> [{“id”=>401, “游戏id”=>8690, “用户id”=>1, “行”=>#, “创建时间”=>2016年11月16日星期三美国东部时间21:55:59-05:00, “更新时间”=>2016年11月16日星期三美国东部时间21:55:59-05:00},ruby,Ruby,我需要保留这个精确的结构,只需将第一行的值更改/更新为20即可。它始终是我需要更新/修改的同一个位置。我尝试了一系列的方法,但都只是为了遇到语法错误或更改现有的结构。谢谢大家! 这里有一个可能的解决方案,它不修改原始数据,而是创建一个新的散列 {"8933"=> [{"id"=>419, "game_id"=>8933, "user_id"=>1, "line"=>21, "created_at"=>Mon, 21 Nov

我需要保留这个精确的结构,只需将第一行的值更改/更新为20即可。它始终是我需要更新/修改的同一个位置。我尝试了一系列的方法,但都只是为了遇到语法错误或更改现有的结构。谢谢大家!

这里有一个可能的解决方案,它不修改原始数据,而是创建一个新的散列

{"8933"=>
  [{"id"=>419,
    "game_id"=>8933,
    "user_id"=>1,
    "line"=>21,
    "created_at"=>Mon, 21 Nov 2016 02:27:16 EST -05:00,
    "updated_at"=>Mon, 21 Nov 2016 02:27:16 EST -05:00}],
 "8690"=>
  [{"id"=>401,
    "game_id"=>8690,
    "user_id"=>1,
    "line"=>#<BigDecimal:7fdd42d96670,'-0.5E0',9(18)>,
    "created_at"=>Wed, 16 Nov 2016 21:55:59 EST -05:00,
    "updated_at"=>Wed, 16 Nov 2016 21:55:59 EST -05:00}]}
如果您确实只想修改第一次出现的
,您可以执行以下操作:

data = {
  "8933"=>
  [
    {
      "id"=>419,
      "game_id"=>8933,
      "user_id"=>1,
      "line"=>21,
      "created_at"=>"Mon, 21 Nov 2016 02:27:16 EST -05:00",
      "updated_at"=>"Mon, 21 Nov 2016 02:27:16 EST -05:00"
    }
  ],
  "8690"=>
  [
    {
      "id"=>401,
      "game_id"=>8690,
      "user_id"=>1,
      "line"=>-5,
      "created_at"=>"Wed, 16 Nov 2016 21:55:59 EST -05:00",
      "updated_at"=>"Wed, 16 Nov 2016 21:55:59 EST -05:00"
    }
  ]
}

# Use deep_copy if you use Ruby only. Use data.deep_dup if you use Rails
def deep_copy(o)
    Marshal.load(Marshal.dump(o))
end

modified_data = deep_copy(data)

modified_data.each{|n,array|
  array.each{|ids|
     ids["line"] = "whatever"
  }
} 

require 'pp'

pp modified_data
puts "-----"
pp data

# {"8933"=>
#   [{"id"=>419,
#     "game_id"=>8933,
#     "user_id"=>1,
#     "line"=>"whatever",
#     "created_at"=>"Mon, 21 Nov 2016 02:27:16 EST -05:00",
#     "updated_at"=>"Mon, 21 Nov 2016 02:27:16 EST -05:00"}],
#  "8690"=>
#   [{"id"=>401,
#     "game_id"=>8690,
#     "user_id"=>1,
#     "line"=>"whatever",
#     "created_at"=>"Wed, 16 Nov 2016 21:55:59 EST -05:00",
#     "updated_at"=>"Wed, 16 Nov 2016 21:55:59 EST -05:00"}]}
# -----
# {"8933"=>
#   [{"id"=>419,
#     "game_id"=>8933,
#     "user_id"=>1,
#     "line"=>21,
#     "created_at"=>"Mon, 21 Nov 2016 02:27:16 EST -05:00",
#     "updated_at"=>"Mon, 21 Nov 2016 02:27:16 EST -05:00"}],
#  "8690"=>
#   [{"id"=>401,
#     "game_id"=>8690,
#     "user_id"=>1,
#     "line"=>-5,
#     "created_at"=>"Wed, 16 Nov 2016 21:55:59 EST -05:00",
#     "updated_at"=>"Wed, 16 Nov 2016 21:55:59 EST -05:00"}]}
data.values.first.first["line"] = "whatever"