Как создать Hash, который включает в себя динамически создаваемый массив хэшей - PullRequest
0 голосов
/ 07 июля 2011

Мне нужно создать что-то вроде этого:

"paxReference" => [{
  "ptc" => "ADT",                 
  "traveller" => [
    {
      "ref" => "1"               
    },
    { 
      "ref" => "2"
    }
  ]
},
{
  "ptc" => "CH",                 
  "traveller" => [
    {
      "ref" => "3",                 
    },
    {
      "ref" => "4",                
    }
  ]
},
]

Но массив хэшей "путешественник" должен быть построен динамически, я имею в виду, если параметр ADT_number равен 4, я должен включить 4

"ref" => "1"
"ref" => "2"
"ref" => "3"
"ref" => "4"

То же самое для сегмента "CH".

Как я могу сделать это в Ruby?

Выход должен выглядеть следующим образом:

<paxReference>
 <ptc>ADT</ptc>
 <traveller>
  <ref>1</ref>
 </traveller>
 <traveller>
  <ref>2</ref>
 </traveller>
</paxReference>
<paxReference>
 <ptc>CH</ptc>
 <traveller>
  <ref>3</ref>
 </traveller>
 <traveller>
  <ref>4</ref>
 </traveller>
</paxReference>

1 Ответ

0 голосов
/ 07 июля 2011
paxReference = ptcs.map do |ptc|
  out_hash = {}
  out_hash["ptc"] = ptc
  out_hash["traveler"] = ADT_number.times.map {|i| {"ref" => i }}
end

Это в случае, когда ptcs является массивом, и ADT_number не меняется для каждого из них.Если ADT_number изменится, вы захотите получить что-то с индексом или что-то в этом роде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...