当前位置:  开发笔记 > IOS > 正文

如何在time_select视图助手中设置时间?

如何解决《如何在time_select视图助手中设置时间?》经验,为你挑选了1个好方法。

我有一个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帮助者做什么,那么它会让事情变得更容易.



1> Shripad Kris..:

@ 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帮助者做什么,那么它会让事情变得更容易.

推荐阅读
雨天是最美
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有