Rails与对象数组的强参数

时间:2013-09-03 14:52:20

标签: ruby-on-rails ruby strong-parameters

使用rails 4.0强参数时,如何允许这样的json?

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

我尝试了以下内容:

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

但它不起作用。

2 个答案:

答案 0 :(得分:13)

接受一个对象数组,将params放在一个数组中

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

答案 1 :(得分:3)

我遇到了同样的问题,接受的答案对我不起作用。但是,以下做了:

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