Rubino: Come posso fare questi oggetti lo stesso?
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.
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