Wenn ich ein Array von HashesPassing sort_by eine Reihe von Sortierfeldern
collection = [
{ first_name: 'john', last_name: 'smith', middle: 'c'},
{ first_name: 'john', last_name: 'foo', middle: 'a'}
]
und eine Reihe von Tasten habe ich sortieren mag:
sort_keys = ['first_name', 'last_name']
Wie kann ich diesen Schlüssel sort_by
passieren vorausgesetzt, dass die Schlüssel immer den Schlüsseln in der Sammlung entsprechen?
Ich habe
versuchtcollection.sort_by { |v| sort_keys.map(&:v) }
aber das funktioniert nicht. Ich glaube, ich muss einen Proc verwenden, aber ich bin mir nicht sicher, wie ich ihn implementieren soll. Würde mich über jede Hilfe freuen!
mit Ruby 2.2.1
Das funktioniert, danke !! Was macht 'values_at' hinter den Kulissen? Es funktioniert ohne Umwandlung der Schlüssel in Symbole, glaube ich, weil es gleichgültig Zugang ist. – theartofbeing
Nein, er hat die Schlüssel in den 'sort_keys' Arrays zu Symbolen gemacht. Es gibt keinen gleichgültigen Zugriff auf einen einfachen Ruby-Hash. –