允许在 rails 中自定义创建的参数
Permit custom created params in rails
我已经浏览了以下帖子,但没有得到满意的答案:
can't permit custom params with strong parameters
我想要的是在 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
{}
怎么了?
如果您查看 Permitted Scalar Values 下的强参数自述文件,您会发现由于您使用的是标量值数组,因此您必须像这样表示它:
def clinic_hour_params
params.require(:clinic_hour).permit(
close_time: []
)
end
你这里有一个数组,也就是说,你需要专门告诉接受一个数组。试试这个:
def clinic_hour_params
params.require(:clinic_hour).permit(
:close_time => []
)
end
也可以在这里 https://github.com/rails/strong_parameters 查看所有类型 "permittable"。
我已经浏览了以下帖子,但没有得到满意的答案:
can't permit custom params with strong parameters
我想要的是在 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
{}
怎么了?
如果您查看 Permitted Scalar Values 下的强参数自述文件,您会发现由于您使用的是标量值数组,因此您必须像这样表示它:
def clinic_hour_params
params.require(:clinic_hour).permit(
close_time: []
)
end
你这里有一个数组,也就是说,你需要专门告诉接受一个数组。试试这个:
def clinic_hour_params
params.require(:clinic_hour).permit(
:close_time => []
)
end
也可以在这里 https://github.com/rails/strong_parameters 查看所有类型 "permittable"。