我已经完成了以下帖子,没有得到任何满意的答案:
can't permit custom params with strong parameters
Permit extra params in special cases with Strong Params in Rails 4
我想要的是允许在rails控制器中自定义创建的参数:
我的代码
模板
= form_tag ...
= select_tag :hour, options_for_select(options_for_hours), name: "clinic_hour[close_time][]", title: "Hours"
= select_tag :minute, options_for_select(options_for_minutes), name: "clinic_hour[close_time][]", title: "Minutes"
= select_tag :convention, options_for_select([["AM", "AM"], ["PM", "PM"]]), name: "clinic_hour[close_time][]"
= submit_tag ...
以上代码创建了 params ,如:
Parameters: {"clinic_hour"=>{"close_time"=>["0", "0", "AM"]}}
但是在控制器......
控制器
当我喜欢的时候:
def clinic_hour_params
params.require(:clinic_hour).permit(
:close_time
)
end
在rails服务器日志中仍然这样说:
Unpermitted parameters: close_time
{}
出了什么问题?
答案 0 :(得分:1)
如果你看一下Permitted Scalar Values下的强参数自述文件,你会看到,因为你正在处理一组标量值,你必须这样表示:
def clinic_hour_params
params.require(:clinic_hour).permit(
close_time: []
)
end
答案 1 :(得分:1)
这里有一个数组,这意味着你需要专门告诉接受一个数组。试试这个:
def clinic_hour_params
params.require(:clinic_hour).permit(
:close_time => []
)
end
同样在这里https://github.com/rails/strong_parameters你可以看到所有类型都是" permittable"。