Domanda

Così ho i seguenti hash / array:

{"number"=>[{"tracking"=>"1Z81E74W0393736553", "notes"=>"Example note"}, {"tracking"=>"9102901001301227214058"}]}

{"number"=>{"tracking"=>"1Z81E74W0393736553", "notes"=>"Example note"}}

Questo primo hash ha una matrice per number mentre il secondo no.

E 'scatenando il caos cercando di scorrere i dati (in particolare quando c'è solo un monitoraggio / note combo).

In definitiva ho voglia di essere in grado di fare un ciclo each su ogni combinazione di monitoraggio / note.

È stato utile?

Soluzione

h1={"number"=>[{"tracking"=>"1Z81E74W0393736553", "notes"=>"Example note"}, {"tracking"=>"9102901001301227214058"}]}
h2={"number"=>{"tracking"=>"1Z81E74W0393736553", "notes"=>"Example note"}}
[h1["number"]].flatten
  => [{"notes"=>"Example note", "tracking"=>"1Z81E74W0393736553"}, {"tracking"=>"9102901001301227214058"}]
[h2["number"]].flatten
  => [{"notes"=>"Example note", "tracking"=>"1Z81E74W0393736553"}]

Ora, ciascuno di essi sarà un array di hash ed è possibile utilizzare each per scorrere attraverso di loro.

Altri suggerimenti

Una cosa come questa?

hash["number"] = [ hash["number"] ] unless hash["number"].kind_of?(Array)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top