Frage

So habe ich die folgenden Hashes / Arrays:

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

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

Das erste Hash hat eine Anordnung für number während der zweiten dies nicht tut.

Es ist Chaos anzurichten, um eine Schleife durch die Daten versucht (speziell, wenn es nur eine Tracking / Notizen Combo).

Am Ende der Lage sein, eine each Schleife auf jedem Tracking / Notizen Combo Ich bin zu wollen tun.

War es hilfreich?

Lösung

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"}]

Es wird nun jeweils ein Array von Hashes und Sie können each zu durchlaufen sie verwenden.

Andere Tipps

So etwas wie das?

hash["number"] = [ hash["number"] ] unless hash["number"].kind_of?(Array)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top