使用日期选择器选择日期和时间,但在Rails中可以立即看到时间



我使用的是Rails 4,还有Twitter Bootstrap。

我想用日期选择器选择日期,但要有一个单独的可见组件来选择小时和分钟。

我已经看过了一个小的bootstrap-datetimepicker https://github.com/smalot/bootstrap-datetimepicker,但是看看演示页面,他们没有展示任何分别显示日期和时间的能力。你必须选择日期,然后再选择时间,这感觉不是很直观。

我也看过Eonasdan bootstrap-datetimepicker https://github.com/Eonasdan/bootstrap-datetimepicker,但是它的时间选择,即使在内联模式下,也不是直观的-人们会知道他们可以点击小时值来改变它吗?

我想只是使用一个日期选择器来选择日期,并选择小时和分钟我自己,但它有点感觉错误的把一部分日期时间交给一个gem/库和处理它自己的其余部分。

我在Rails中遇到了单独的日期和时间表单字段,这是在问这种问题,但这是一个从2010年9月开始的问题。

如何使用日期选择器选择日期,但有简单且立即可见的时间选择?

首先,除非你找到一个插件可以做你想要的现成的,然后,是的,它取决于你来处理它,是的,它感觉有点不对劲-取决于你怎么做。

不确定你的想法,但感觉"最错误"的方式是,如果你的表单有一个单一的"日期时间"字段下引子,你使用javascript从插件和时间从你自己的设置,并将它们存储在你的日期时间字段。这样做的好处是,你的rails应用程序只获得一个datetime字段,并确切地知道如何处理它。

我是这样做的:

请记住,表单不一定要与模型一一映射,我将其在控制器层中拆分,并在概念上认为"具有两个字段的表单:日期和时间",然后在您的控制器(或表单对象,这可能更适合这种情况)中,您将日期和时间缝合在一起,然后将它们保存到模型中。这种方法意味着您可以对每个字段进行单独的验证,这可能也是您想要的(因为我假设用户可能输入有效的日期,但输入无效的时间,或者反之亦然)。

在使用插件处理日期和自己处理时间方面,现在已经很好了——从表单的角度来看,它们是两个完全独立的字段,所以没有什么不好的。这只是意味着你需要在控制器层中添加额外的逻辑,以便在显示表单时拆分日期时间,并在保存表单时将日期和时间合并为一个。

编辑:如果你还没有听说过表单对象,看看https://github.com/apotonick/reform和http://railscasts.com/episodes/416-form-objects

最新更新