在Rails中更改默认的simple_form日期时间表单

时间:2016-02-20 01:20:39

标签: ruby-on-rails ruby datetime

我正在尝试修改simple_form允许用户在表单上以小时和分钟输入时间的方式。我的应用程序在Ruby on Rails(4)中,它目前显示年,月和日。但是,日期时间(小时和分钟)目前以军事时间显示。我曾多次尝试将其配置为使用AM和PM选项显示标准时间。

目前,我已经写了部分内容来显示信息。

_form.html.haml

= simple_form_for(@order, html: {class: 'form-horizontal'}) do |f|
    =f.input :date, label: "Date", input_html: {class:   DateTime.now.strftime("%B %C, %Y - %r")}
    =f.input :name, label: "Name", input_html: {class: "form-control"}
    =f.input :pickup, label: "Pick-up", input_html: {class: "form-control"}
    =f.input :pickuptime, label: "Pick-up Time", input_html: {class: "form- control"}
    %br/
    =f.button :submit, class: "btn btn-danger btn-lg"

尽管如此,它仍然显示具有军事时间选项的表格。

如何更改表格,以便选择标准时间AM或PM?

2 个答案:

答案 0 :(得分:1)

您只需要验证模型中的日期时间对象,以及实际看起来如何

和rails会以正确的方式查看它。

通常你是通过i18n做的。但对你而言:

 class MyClass
    validate :myDatetime

    private
    def myDatetime
      date.strftime(%m.%d.%Y %H:%M)
    end
 end

应该有效。

一点提示,您不必在每个表单中指定简单表单按钮的类名。 您可以在config / initializers / simple_form.rb中指定它:

 config.button_class ='your btn name'

=>很干

答案 1 :(得分:0)

也许这可以帮到你:https://github.com/plataformatec/simple_form/issues/1328 看来你必须自己构建它。 或者,如果您使用的是bootstrap:http://eonasdan.github.io/bootstrap-datetimepicker/(我从未使用过它)