ich einen Rubin-Hash zu konvertieren, diewas ist der beste Weg, um einen rubin Hash in ein Array
{ "stuff_attributes" => {
"1" => {"foo" => "bar", "baz" => "quux"},
"2" => {"foo" => "bar", "baz" => "quux"}
}
}
wie diese aussieht und ich möchte es in einen Hash verwandeln, die
{ "stuff_attributes" => [
{ "foo" => "bar", "baz" => "quux"},
{ "foo" => "bar", "baz" => "quux"}
]
}
sieht wie folgt aus
Ich muss auch die numerische Reihenfolge der Schlüssel beibehalten, und es gibt eine variable Anzahl von Schlüsseln. Das obige ist sehr vereinfacht, aber ich habe ein echtes Beispiel an der Unterseite eingefügt. Was ist der beste Weg, dies zu tun?
PS
Es muss auch
Was die Rekursion geht, hier ist rekursiv sein, was wir annehmen können:
1) der Schlüssel, der manipuliert werden muss, wird übereinstimmen/_attributes $/ 2) der Hash wird viele andere Schlüssel haben, die nicht übereinstimmen/_attributes $/ 3) die Schlüssel innerhalb des Hash werden immer eine Nummer 4) ein _attributes Hash kann auf jeder Ebene des Hash unter einem anderen Schlüssel sein
Dieser Hash ist eigentlich der Params-Hash einer Create-Aktion im Controller. Dies ist ein echtes Beispiel dafür, was mit dieser Routine geparst werden muss.
{
"commit"=>"Save",
"tdsheet"=>{
"team_id"=>"43",
"title"=>"",
"performing_org_id"=>"10",
"tdsinitneed_attributes"=>{
"0"=>{
"title"=>"",
"need_date"=>"",
"description"=>"",
"expected_providing_organization_id"=>"41"
},
"1"=>{
"title"=>"",
"need_date"=>"",
"description"=>"",
"expected_providing_organization_id"=>"41"
}
},
"level_two_studycollection_id"=>"27",
"plan_attributes"=>{
"0"=>{
"start_date"=>"", "end_date"=>""
}
},
"dataitem_attributes"=>{
"0"=>{
"title"=>"",
"description"=>"",
"plan_attributes"=>{
"0"=>{
"start_date"=>"",
"end_date"=>""
}
}
},
"1"=>{
"title"=>"",
"description"=>"",
"plan_attributes"=>{
"0"=>{
"start_date"=>"",
"end_date"=>""
}
}
}
}
},
"action"=>"create",
"studycollection_level"=>"",
"controller"=>"tdsheets"
}
NameError: undefined lokale Variable oder Methode 'Schlüssel 'für # \t von/Speicher/cait/Entwicklung/app/Helfer/Anwendung_Helper .rb: 6: in 'array_from_hash ' –
nachdem dieser Fehler durch Ändern von k.to_i.to_s == Schlüssel zu k.to_i.to_s == k behoben wurde, funktioniert es einwandfrei! Vielen Dank! –
Sie haben ein paar interessante Ideen hier einzuteilen :) – rfunduk