2013-09-03 2 views
5

Bei der Verwendung der Schienen 4.0 starke Parameter, wie erlaube ich JSON so?Rails starke Parameter mit Objekten Array

{ 
    "user": 
    { 
     "first_name":"Jello" 
    }, 
    "users_to_employer":[ 
     { 
      "start_date":"2013-09-03T16:45:27+02:00", 
      "end_date":"2013-09-10T16:45:27+02:00", 
      "employer":{"company_name":"Telenor"} 
     }, 
     { 
      "start_date":"2013-09-17T16:45:27+02:00", 
      "end_date":null, 
      "employer":{"company_name":"Erixon"} 
     } 
    ] 
} 

Ich habe versucht, mit den folgenden:

params.require(:users_to_employers => []).permit(
               :start_date, 
               :end_date => nil, 
               :employer => [ 
                :company_name 
               ]) 

Aber es hat nicht funktioniert.

+1

try params.permit (users_to_employers: [{: start_date,: end_date, Arbeitgeber: {: company_name}]) –

+0

Danke, das machte es funktionieren. –

Antwort

7

Versuchen

params.permit(users_to_employers: [{ :start_date, :end_date, employer: [ :company_name ]]) 

diese

+0

Es funktioniert, aber Arbeitgeber sollte mit '[]' und nicht '{}' sein? –

+0

Warum denkst du das? –

+0

Mein Rubin funktioniert gut mit '[]', aber nicht mit '{}'. Es sagt, es ist ein Syntaxfehler mit '{}', aber ich benutze die Syntax '{: employer => [: company_name]. –

1

arbeiten sollte ich hatte gerade das gleiche Problem und die akzeptierte Antwort für mich nicht funktioniert hat. Doch die folgende tat:

params.permit(users_to_employers: [:start_date, :end_date, employer: [ :company_name ]])