2016-03-19 7 views
0

Ein Element aus der Liste meiner params-Hash ist ein Array von selbst, wie:Wie wählt man in Rails ein Element aus einem Array, das Teil eines Params-Hashs ist?

Parameters: 

{"utf8"=>"✓", 
"scan"=>{"scores"=>"66 73 75 47"}, 
"commit"=>"report", 
"id"=>"6"} 

ich gesucht habe, und ich habe versucht, aber ich kann nicht die richtige params[....] Syntax finden die ganzen Zahlen in der "zugreifen Partituren "-array. Ich möchte sie in meinem Controller verwenden.)-: Hilfe?

Antwort

4

Das ist kein Array, das ist eine durch Leerzeichen getrennte Liste in einer einzigen Zeichenfolge. Besuchen Sie es wie folgt aus:

params[:scan][:scores].split.map(&:to_i) 

(ich nehme an, Sie ganze Zahlen wollen, keine Strings.)

Alternativ, wenn Ihr Code die Anforderung stellt, Sie können in der Lage sein, es zu beheben, die Anforderung zu machen mit einem Array anstelle einer durch Leerzeichen getrennten Zeichenfolge.

+0

Ja! Das macht den Job. Und es kam mir seltsam vor, dass in der "array" = sp.sep.list kein Komma war. Mein Code soll das Array-Objekt als versteckten Eingabewert übergeben. Wie: 'f.hidden_field: Punkte, Wert: @ discscores' @diskscores ist ein Array-Objekt. Ich muss dort noch etwas finden. – BerryGJS

+0

Mit diesem Code: '<% @ diskscores.each do | ds | %> <% = f.hidden_field: scores,: multiple => true,: wert => ds%> <% end %> ' gab mir ein Array" scores "direkt im params-hash (anstelle der Leerzeichen getrennt Zeichenfolge), Daher ist die Methode 'split.map' nicht erforderlich. Es hat nicht funktioniert, den Code in einen Block zu stellen, denn wenn ich das tat, stellte sich heraus, dass die Eingabe nicht verborgen war, d. H. Das Punktarray wurde für die Ansicht gerendert. – BerryGJS

Verwandte Themen