2013-09-03 24 views
5

Khi sử dụng đường ray 4.0 thông số mạnh, làm thế nào để tôi cho phép json như thế này?Rails thông số mạnh mẽ với các đối tượng mảng

{ 
    "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"} 
     } 
    ] 
} 

tôi đã cố gắng với những điều sau:

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

Nhưng nó đã không làm việc.

+1

thử params.permit (users_to_employers: [{: start_date,: end_date, sử dụng lao động: {: COMPANY_NAME}]) –

+0

Cảm ơn, khiến cho nó hoạt động. –

Trả lời

7

Hãy thử

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

này nên làm việc

+0

Nó hoạt động nhưng nhà tuyển dụng nên được với '[]' và không '{}'? –

+0

Tại sao bạn nghĩ vậy? –

+0

Ruby của tôi hoạt động tốt với '[]' nhưng không phải với '{}'. Nó nói rằng đó là một lỗi cú pháp với '{}', nhưng tôi đang sử dụng cú pháp '{: employ => [: company_name]. –

1

Tôi chỉ có cùng một vấn đề và câu trả lời được chấp nhận không làm việc cho tôi. Tuy nhiên, sau đây đã làm:

params.permit(users_to_employers: [:start_date, :end_date, employer: [ :company_name ]]) 
Các vấn đề liên quan