Ruby on rails RubyonRails:time\u选择默认值
几个小时以来,我一直在寻找解决这个问题的办法。即使在stackoverflow上,也有很多建议,我尝试了所有建议,但都不适用于我的情况,我不知道为什么 我的服务器上运行的是RoR[4.1.5]的当前版本,并且我有一个表单,用户必须在其中选择“开始时间”和“结束时间”值Ruby on rails RubyonRails:time\u选择默认值,ruby-on-rails,ruby,forms,time-select,Ruby On Rails,Ruby,Forms,Time Select,几个小时以来,我一直在寻找解决这个问题的办法。即使在stackoverflow上,也有很多建议,我尝试了所有建议,但都不适用于我的情况,我不知道为什么 我的服务器上运行的是RoR[4.1.5]的当前版本,并且我有一个表单,用户必须在其中选择“开始时间”和“结束时间”值 <p> <%= f.label :Time %><br> <%= f.time_select :timefrom, {minute_step: 60} %> to <%= f.
<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'}等分别处理小时和分钟,但这也不起作用,甚至不会导致错误。没什么。它仍然默认为实际时间
有人给我推荐或提示吗?时间默认值\u为那些没有遵循评论线程的人选择如下工作方式:
<%= time_select :name, 'method', {options}, {:default => {:hour => '10', :minute => '30'}} %>
如果我们希望时间选择默认为10:30
f.time_select :start, default: Time.current.change(hour: 9, min: 0)
或
ref:标记帮助程序通常会有一个非哈希字段,该字段需要一个默认值,例如,选择_Tag:foo,@widget.foo | params[:foo]。对不起,我不知道你的意思,很遗憾,它不起作用。。。显示C:/i2data\u input/app/views/productions/\u form.html.erb,其中第23行出现:16:00的未定义方法“merge”:StringMy error。我误解了time_select中第二个参数的作用。我以为它是一个预填充值,但实际上它是您正在处理的对象上的一个方法,例如f.time_select:foo,:bar从f.bar获取一个值。这可能是您正在寻找的:value选项。Renra在该页面上对他自己的问题的回答对我有用,例如time_select:timeto,{minute_step:60},:default=>{:hour=>'10',:minutes=>'30'}。从外观上看,您可能需要通过操纵变量来设置小时和分钟。
f.time_select :start, default: {hour: 9, min: 0}