我正在尝试在Rails中实现time_select
。根据{{3}},第一个参数应该是object_name,第二个参数应该是方法名称。这对我来说没什么意义。
我和form_for
一起使用它,所以我将模型名称作为第一个参数传递,我的字段名称作为第二个参数传递:
form.time_select :base_content, :start_at, { ...
产生以下异常:undefined method 'merge' for :start_at:Symbol
但是,如果我只是传入字段名称:
form.time_select :start_at, { ...
工作正常。但现在我有另一个问题,该参数出现为:
start_at(5i)
什么是(5i)
,我该如何摆脱它?
答案 0 :(得分:1)
你用第二种方式做得对。 5i
是标记参数是分钟值,4i
是小时。但是您安装的gem combined_time_select
会覆盖time_select
方法,将整个时间放在一个参数中 - 由于某种原因,它选择将(5i)
保留在参数名称的末尾。
在控制器中,您应该使用方法parse_time_select
方法解析参数,然后再使用它来更新模型
params[:base_content].parse_time_select! :start_time