2016-05-25 6 views
0

Ich habe eine Anfrage, wo eines der Felder Array Array ist. ParameterWie Array von Array in Schienen zu ermöglichen

{ 
    "product" => { 
    "pitch_points"=>{ 
     "adwords"=>{ 
     "search"=>{ 
      "short"=>["qwe"], 
      "long"=>[["asdadas", "dasdasdas"]] 
     } 
     } 
    } 
    } 
} 

Wie können wir diesen langen Schlüssel erlauben?

Ich mag dieses

params.require(:product).permit( 
    pitch_points: [ 
    adwords: [ 
     search: [ 
     short: [], 
     long: [] 
     ] 
    ] 
    ] 
) 

.my Ausgabe getan haben, ist

{ 
    "pitch_points"=>{ 
    "adwords"=>{ 
     "search"=>{ 
     "short"=>["qwe"], 
     "long"=>[] 
     } 
    } 
    } 
} 

aber Ausgang ist leer lang.

+0

nicht "lang" => [] [] arbeiten? – Boltz0r

+0

'params [: product] .permit!' Um alle Parameter zuzulassen. –

+0

@PardeepSaini Genehmigung ist Sicherheitsgrund einzuführen. So direkte Erlaubnis! ist nicht akzeptabel und ich würde auch vorschlagen, dass Sie bitte versuchen, diese Erlaubnis zu vermeiden! Option direkt. – Sanket

Antwort

1

Sie können dies nicht explizit zulassen.

Wenn Sie die documentation überprüfen, stellt fest, dass starke Parameter entweder ein zulässiger Skalartyp oder ein Array zulässiger Skalartypen sein können. Da ein Array kein zulässiger Skalartyp ist, können Sie ein Array, das in einem anderen Array verschachtelt ist, nicht auf die weiße Liste setzen.