有以下代码:
.row
= f.label :start_time
= time_select :model, :start_time, { minute_step: 30 }
.row
= f.label :end_time
= time_select :model, :end_time, { minute_step: 30 }
time_select为每个副本生成2个选择(1个小时,1个小时)。因此,我们使用'start_time(1i)',''start_time(5i)'字段(对于end_time来说相同)在params中“建模”哈希。我有以下问题:
由于
答案 0 :(得分:2)
你可以让Rails为你工作:
= f.time_select(:start_time, minute_step: 30)
当您在控制器中调用模型上的update_attributes
时,Rails将创建Time对象并将其分配给模型。
如果您使用Rails 4,请务必使用强参数将:start_time
和:end_time
列入白名单。
默认情况下,Rails无法执行此操作。但是,您可以使用combined_time_select gem为您执行此操作:
f.time_select(:end_time, combined: true, minute_step: 30)
确保在安装此gem之后重新启动Rails服务器。
答案 1 :(得分:0)
这些帮助程序已针对ActiveRecord模型及其属性进行了优化。如果您有列start_time
和end_time
,则无需担心自己从传递的参数创建Time对象。
你有什么特别想要实现的目标?