【问题标题】:Customize datetime field in Rails using simple_form使用 simple_form 在 Rails 中自定义日期时间字段
【发布时间】:2013-10-08 17:50:14
【问题描述】:

我的应用程序使用 Rails 3.2.14、MySQL 和 simple_form。

我将notification_time 列字段设置为datetime,并在_create_form.erb 中将其自定义为像这样的文本字段

<%= f.input :notification_time, :input_html => { :value => DateTime.now.strftime("%d/%m/%Y - %H:%M %p")}, :as => :string %>

这会导致浏览器上的08/10/2013 - 13:50 PM

我有一个只有&lt;%= f.input :notification_time, :as =&gt; :string %&gt;_update_form.erb,结果是2013-10-08 13:50:00 -0400

如何确保我在更新表单时也能获得08/10/2013 - 13:50 PM??

【问题讨论】:

    标签: mysql ruby-on-rails forms datetime simple-form


    【解决方案1】:

    嗯,你永远不会设置它的外观。

    在您的第一个代码块中,您正在执行DateTime.now.strftime("%d/%m/%Y - %H:%M %p"),但您从未在您的第二个代码块中的任何地方执行此操作。

    我会假设在您的_update_form.erb 中有一个与您正在更新的表单相对应的变量。

    所以我们称之为@form

    然后你可以这样做:&lt;%= f.input :notification_time, :value =&gt; @form.notification_time.strftime("%d/%m/%Y - %H:%M %p"), :as =&gt; :string %&gt;... 或类似的东西。

    【讨论】:

    • 我试过 notification_time.strftime("%d/%m/%Y - %H:%M %p") 但不知道,我需要做@form.notification_time 学到了新东西!谢谢!
    • 很清楚自发布以来已经过去了很多时间,但是对于“新”表单,这将有何不同?当我使用它@jamby 时,它以undefined method strftime' for nil:NilClass` 击中我...
    • @SRack 你传递的时间值是多少?你只是想做strftime吗?听起来你没有做@form.THE_NAME_OF_THE_TIME_VARIABLE_HERE.strftime...
    猜你喜欢
    • 2013-01-07
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 2016-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-19
    相关资源
    最近更新 更多