2016-12-20 1 views
0

Ich habe eine Reihe von Hashes, die ich in einem Formular einreiche. Ich habe einen eindeutigen Schlüssel an den Anfang gestellt, weil die Namen der Felder gleich sind und ich verhindern musste, dass sie sich gegenseitig überschreiben. Aber wenn ich die Daten in einem Feld serialisiert zu speichern, muß ich den Schlüssel nicht mehr, so dass für den besten Weg, ich bin auf der Suche, um uns aus:Schienen - Streifen Schlüssel aus Array von Hashes

{"6"=>{"Between Wires"=>"0"}, 
"7"=>{"Wires to GND"=>"0"}, 
"8"=>{"Between Wires"=>"0"}, 
"9"=>{"Wires to GND"=>"0"}, 
"10"=>{"Between Wires"=>"0"}, 
"11"=>{"Wires to GND"=>"0"}, 
"13"=>{"Between Wires"=>"0"}, 
"14"=>{"Wires to GND"=>"0"}, 
"16"=>{"Between Wires"=>"0"}, 
"17"=>{"Wires to GND"=>"0"}, 
"19"=>{"Between Wires"=>"0"}} 

Wie kann ich die Schlüssel zu entfernen, so ich habe Dies?

Antwort

0

Sie können über sie mit map iterieren und den Schlüssel weglassen.

old = {"6"=>{"Between Wires"=>"0"}, "7"=>{"Wires to GND"=>"0"}} 
new = old.map { |k,v| v } 
+0

ich ursprünglich, dass versucht zu verwenden wäre, aber ich habe ein Array in und mir das retten nicht erlauben würde, Daten serialisiert: "Attribut sollte ein Hash sein, aber war ein Array." Gibt es eine Möglichkeit, es als Hash zu behalten? – fatfrog

+1

Sie können keinen Hash mit doppelten Schlüsseln haben – Iceman

+0

Verdammt ok danke. – fatfrog

2

Es wurde bereits beantwortet, aber ich glaube, eine bessere Lösung #values

hash = { 
"6"=>{"Between Wires"=>"0"}, 
"7"=>{"Wires to GND"=>"0"}, 
"8"=>{"Between Wires"=>"0"} 
} 

hash.values 
Verwandte Themen