强参数中的嵌套数组
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: []
)
我有通过 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: []
)