2016-02-20 59 views
0

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

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

_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?

回答

1

你只需要验证您的DateTime对象模型中的,你怎么想,它实际上看起来像

和铁路将会把它正确的给你的方式。

通常你通过i18n做到这一点。但对你来说就像这样:

class MyClass 
    validate :myDatetime 

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

应该工作。

有一点提示,你不必在每个表单中指定简单表单按钮的类名称。 你可以只指定它在你的配置/初始化/ simple_form.rb:

config.button_class ='your btn name' 

=>非常干燥

+0

我不知道为什么我仍然得到一个错误:在的SyntaxError#OrdersController索引,其中,它的网站“date.strftime(%m。%d。%Y%H:%M)”作为我的Order模型中未知类型的字符串。 –