Ich habe folgendes:Wie verwende ich eine String-Beschreibung, um auf Daten von einer Hash-in- Hash-Struktur zuzugreifen?
data_spec['data'] = "some.awesome.values"
data_path = ""
data_spec['data'].split('.').each do |level|
data_path = "#{data_path}['#{level}']"
end
data = "site.data#{data_path}"
An diesem Punkt data
entspricht einem String: "site.data['some']['awesome']['values']"
Was ich brauche Hilfe mit der Zeichenfolge wird mit dem Wert zu erhalten: site.data['some']['awesome']['values']
site.data
hat der folgende Wert:
{
"some" => {
"awesome" => {
"values" => [
{
"things" => "Stuff",
"stuff" => "Things",
},
{
"more_things" => "More Stuff",
"more_stuff" => "More Things",
}
]
}
}
}
Jede Hilfe ist Grea tally geschätzt. Vielen Dank!
könnten Sie verwenden ein 'eval', aber das ist nicht wirklich ein guter Weg, um darüber zu gehen. Ist Ihr tatsächliches Problem, den Wert 'site.data ['some'] ['awesome'] ['values']' zu übergeben, wenn der Eingabe-String '" some.awesome.values "'? –
Ich bin mir nicht sicher, ob ich vollständig verstehe, ich bin sehr neu in Ruby. Die Datenspez ['Daten'] wird aus einer YAML-Datei gezogen. –