Ruby on rails 在ruby中转换数组的嵌套哈希

Ruby on rails 在ruby中转换数组的嵌套哈希,ruby-on-rails,ruby,Ruby On Rails,Ruby,如何在ruby中转换嵌套哈希中的数组 例如: 从 到 我想删除散列2,0的键,并将其转换为数组的散列。谢谢我用以下方法尝试并成功了。谢谢大家 def change(messages) result = {} array = [] messages.each do |field, message| if message.is_a?(Hash) if field.is_a? Integer value

如何在ruby中转换嵌套哈希中的数组

例如: 从


我想删除散列2,0的键,并将其转换为数组的散列。谢谢

我用以下方法尝试并成功了。谢谢大家

def change(messages)
      result = {}
      array = []
      messages.each do |field, message|
        if message.is_a?(Hash)

          if field.is_a? Integer
            value = change(message)
            array.push(value.merge(index: field))
            result = array
          else
            value = change(message)
            result[field] = value
          end

        else
          result[field] = message.at(0)

        end
      end

      result
    end

你想用这个实现什么?请定义你的需求,并说明你已经尝试了什么。对于你的问题,现在最简单的答案是手工编辑。只需更新问题。谢谢。你有一个未闭合的支架。我想应该是倒数第三个角色吧?
   {
       "errors": {
           "name": "must be filled",
           "type": "must be filled",
           "address": {
               "country_id": "must be filled"
           },
           "group": {
               "name": "is missing"
           },
           "contacts": [
             {
               "name": "must be filled",
               "index": 2,
               "phone": [
                 {
                   "number": "must be filled",
                   "email": "must be valid",
                   "index": 0
                 }
               ]
           }
       }
   }
def change(messages)
      result = {}
      array = []
      messages.each do |field, message|
        if message.is_a?(Hash)

          if field.is_a? Integer
            value = change(message)
            array.push(value.merge(index: field))
            result = array
          else
            value = change(message)
            result[field] = value
          end

        else
          result[field] = message.at(0)

        end
      end

      result
    end