Iteration durch array von hashes in ruby
also wenn ich ein array von hashes wie so: (ruby-Anfänger)
input = [
{"last_name"=>"Gay", "first_name"=>"Rudy", "display_name"=>"Rudy Gay", "position"=>"SF", "minutes"=>39, "points"=>25, "assists"=>6},
{"last_name"=>"Collison", "first_name"=>"Darren", "display_name"=>"Darren Collison", "position"=>"PG", "minutes"=>39, "points"=>14, "assists"=>4}
]
wie würde ich das array Durchlaufen sowie zum iterieren durch die einzelnen hash zu haben, so etwas wie dieses:
player1 = {display_name=>"rudy gay", "position"=>"SF"}
Spieler2 = {display_name=>"darren collison", "position"=>"PG"}
Wäre es so etwas wie
input.each do |x|
Player.create(name: x['display_name'], position: x['position']
end
(vorausgesetzt, ich habe ein player-Modell)
Gibt es einen besseren Weg, dies zu erreichen?
Dank!
- Dass code korrekt ist, abgesehen von der fehlenden trailing
)
. Was ist das problem? Sie erhalten jedoch keine Fehler? - Hallo Simone, Frage mich, ob es gibt mehr ruby-Weg, es zu tun, oder ob noch etwas effizienter.
- Überprüfen Sie heraus diese Antwort: stackoverflow.com/a/10022240/4178151. Übergeben Sie das array von hash-direkt nach der create-Methode zu tun, eine große legen.
- +1 Willkommen, SO, und an Ruby!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gegeben, Ihre Eingabe:
Wenn alle diese Tasten (last_name, first_name, display_name) vorhanden sind, die
Player
Modell, können Sie nur:Seit
create
wird, einen hash der Attribute zuweisen. Aber, noch besser, Sie brauchen noch nicht einmal zu iterieren:ActiveRecord gehen durch Sie alle, wenn Sie es geben, ein array von hashes.