Ruby on rails 允许在rails中自定义创建的参数

Ruby on rails 允许在rails中自定义创建的参数,ruby-on-rails,ruby,params,ruby-on-rails-4.2,Ruby On Rails,Ruby,Params,Ruby On Rails 4.2,我已经浏览了以下帖子,但没有得到满意的答案: 我想要的是允许我在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)

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

我想要的是允许我在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
在这里,您还可以看到哪些类型都是“允许的”