强参数中的嵌套数组

nested array in strong parameters

我有通过 ajax 加载的输入,并以具有以下字段的 javascript 的其他形式插入:

<input name="project[config][service][3][web][auth]" type="checkbox">

和其他两个输入:

<input type="text" name="project[config][service][3][web][user]">
<input type="text" name="project[config][service][3][web][pass]">

我怎样才能允许控制器接受这些值?

我试过这些:

params.require(:project).permit(
        :title,
        :description,
        config: [
            service: {
                [] => [
                    :domains,
                    web: [
                        :auth,
                        :user,
                        :pass
                    ]
                ]
            }
        ],
        documents: []
      )

但是没有用。 在控制台中,我将其设置为 project_params[:config]

{"service"=><ActionController::Parameters {"3"=><ActionController::Parameters {} permitted: true>} permitted: true>}

params[:project][:config] 看起来像这样:

{
  "service" => { 
    "3" => {
      "web" => {
        "auth"=>"on",
        "user"=>"asdasdasdasda",
        "pass"=>"asdasdasd"
      }
    }
  }
}

这样试试,应该可以:

params.require(:project).permit(
       :title, 
       :description, 
       config: {
         service: [
           :domains,
           web: [:auth, :user, :pass]
         ]
       },
       documents: []
     )