Ruby on Rails:time_select默认值

Ric*_*tin 2 ruby forms ruby-on-rails time-select

我一直在寻找解决这个问题的解决方案.甚至在stackoverflow上有很多建议,我尝试了所有这些,但是我的情况都没有,我不知道为什么.

我在我的服务器上运行了当前版本的RoR [4.1.5],我有一个表单,用户必须选择"time from"和"time to"值.

<p>
<%= f.label :Time %><br>
<%= f.time_select :timefrom, {minute_step: 60} %> to <%= f.time_select :timeto, {minute_step: 60} %>
</p>
Run Code Online (Sandbox Code Playgroud)

我从数据库中获取默认值.为了获取它们,我只收集已输入的最后一个时间值.通常是1小时的时间范围:

<% changetimeto = (Production.select("timeto").last.timeto).strftime("%H:%M")   %>
<% changetimefrom = (Production.select("timeto").last.timeto + 3600).strftime("%H:%M")  %>
Run Code Online (Sandbox Code Playgroud)

所以我尝试过:

<%= f.time_select :timefrom, {minute_step: 60}, :selected => changetimeto %> to <%= f.time_select :timeto, {minute_step: 60}, :selected => changetimefrom %>
Run Code Online (Sandbox Code Playgroud)

:value =>:default =>

但似乎没什么用,它甚至没有给我一个错误.我检查了变量,changetimeto并且changetimefor它们具有正确的值,如"14:00"和"15:00".但正如我所说,它没有做任何事情.

我也尝试用:default => {hours: '14', minutes: '00'}等分别处理小时和分钟,但这也不起作用,甚至不会导致错误.根本不值一提.它仍然默认为实际时间.

有人对我有推荐或暗示吗?

Var*_*rac 6

time_select中的默认值(对于那些没有关注评论线程的人)的工作方式如下:

<%= time_select :name, 'method', {options}, {:default => {:hour => '10', :minute => '30'}} %>
Run Code Online (Sandbox Code Playgroud)

如果我们想要时间选择默认为10:30.