Einreichen der folgenden ParameterSchienen-Controller Aufruf params verschachtelter Attribute
Parameters: {[...] "physicalinventario"=>{[...] "physicalinventarioitems_attributes"=>{"0"=>{"quantity"=>",85"}}}, "commit"
Das Ziel ist es, die Menge Parameter am physicalinventarioitem
Controller create
Aktion abzufangen und Desinfizieren es möglich Komma als Dezimalwert eingegeben wird
if params[:physicalinventario][:physicalinventarioitems_attributes][:quantity].include? ","
params[:physicalinventarioitem][:quantity] = params[:physicalinventario][:physicalinventarioitems_attributes][:quantity].tr!(',', '.').to_d
end
Die Syntax ist jedoch falsch, da kein Wert nach dem Komma verarbeitet wird.
@Jerome, überprüfen Sie bitte diese Antwort für mehrere verschachtelte Attribute. – Sravan
zwei Beobachtungen. Der erste besteht darin, dass der Code in die Erstellungsaktion des Schachtelungsdatensatzes eingefügt werden soll. Zweitens führt dies, wie erwähnt, zu einer "impliziten Umwandlung von String in Integer" -Fehler. 'params [: physicalinventario] [: physicalinventarioitems_attributes] .alles do | key, Wert |' wird korrekt verarbeitet. – Jerome
Ich habe dort 'to_f' verwendet. – Sravan