繁体   English   中英

允许在Rails中自定义创建的参数

[英]Permit custom created params in rails

我已经阅读了以下帖子,但没有得到满意的答案:

不允许具有强参数的自定义参数

在特殊情况下,在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 ...

上面的代码创建如下参数

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

怎么了?

如果查看“ 允许的标量值”下的“强参数的自述文件”,您将看到,由于您正在使用标量值数组,因此必须这样表示:

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上,您可以看到哪些类型都是“可允许的”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM