Rails time_select参数括号

时间:2015-12-16 03:31:01

标签: ruby-on-rails

我正在尝试在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),我该如何摆脱它?

1 个答案:

答案 0 :(得分:1)

你用第二种方式做得对。 5i是标记参数是分钟值,4i是小时。但是您安装的gem combined_time_select会覆盖time_select方法,将整个时间放在一个参数中 - 由于某种原因,它选择将(5i)保留在参数名称的末尾。

在控制器中,您应该使用方法parse_time_select方法解析参数,然后再使用它来更新模型

params[:base_content].parse_time_select! :start_time