我有一个time_select,我在其中设置时间值如下;
<%= f.time_select :start_time, :value => (@invoice.start_time ? @invoice.start_time : Time.now) %>
这总是产生一个时间选择器,其中包含当前时间而不是@ invoice.start_time的值.
@ invoice.start_time实际上是一个datetime对象,但如果我使用的话,这会被传递给时间选择器
<%= f.time_select :start_time %>
我想我真正想问的是如何使用:value选项和time_select帮助器.像下面这样的尝试似乎没有产生预期的结果;
<%= f.time_select :start_time, :value => (Time.now + 2.hours) %> <%= f.time_select :start_time, :value => "14:30" %>
Shripad Kris.. 6
@ invoice.start_time有分配给它的值吗?我猜不会.如果您使用该代码,@ invoice.start_time将返回nil.因此:value将始终默认为Time.now.这里的问题是您正在使用的条件语句.我假设当您尝试创建新数据时会发生这种情况.填写表单时,@ invoice.start_time未填充任何值.因此它一直没有,直到你拯救.
我建议您将代码更改为:
<%= f.time_select :start_time, :value => @invoice.start_time, :default => Time.now %>
实际上,如果你在问题中能够更明确地知道你希望你的time_select帮助者做什么,那么它会让事情变得更容易.
@ invoice.start_time有分配给它的值吗?我猜不会.如果您使用该代码,@ invoice.start_time将返回nil.因此:value将始终默认为Time.now.这里的问题是您正在使用的条件语句.我假设当您尝试创建新数据时会发生这种情况.填写表单时,@ invoice.start_time未填充任何值.因此它一直没有,直到你拯救.
我建议您将代码更改为:
<%= f.time_select :start_time, :value => @invoice.start_time, :default => Time.now %>
实际上,如果你在问题中能够更明确地知道你希望你的time_select帮助者做什么,那么它会让事情变得更容易.