几个小时来我一直在寻找解决这个问题的办法。即使在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>
我从数据库中获取默认值。为了提取它们,我只收集最后输入的时间值。通常为1小时:
<% changetimeto = (Production.select("timeto").last.timeto).strftime("%H:%M") %>
<% changetimefrom = (Production.select("timeto").last.timeto + 3600).strftime("%H:%M") %>
所以我尝试:
<%= f.time_select :timefrom, {minute_step: 60}, :selected => changetimeto %> to <%= f.time_select :timeto, {minute_step: 60}, :selected => changetimefrom %>
或
:value =>
或:default =>
但似乎什么都不管用,甚至没有给我一个错误。我检查了
changetimeto
和changetimefor
中的变量,它们有正确的值,就像“14:00”和“15:00”。但正如我所说,它什么也做不了。我还试图用
:default => {hours: '14', minutes: '00'}
等分别表示小时和分钟,但这也不起作用,甚至没有导致错误。什么都没有。它仍然默认为实际时间。有人给我推荐或暗示吗?
最佳答案
time-select中的默认值(对于那些没有关注评论线程的用户)的工作方式如下:
<%= time_select :name, 'method', {options}, {:default => {:hour => '10', :minute => '30'}} %>
如果希望时间选择默认为10:30。