使用simple_form在Rails中自定义日期时间字段

时间:2013-10-08 17:50:15

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

我正在为我的应用程序使用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

我的_update_form.erb只有<%= f.input :notification_time, :as => :string %>,结果为2013-10-08 13:50:00 -0400

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

1 个答案:

答案 0 :(得分:5)

嗯,你永远不会设定它的样子。

在您的第一个代码块中,您正在执行DateTime.now.strftime("%d/%m/%Y - %H:%M %p"),但您在第二个代码块中的任何位置都没有这样做。

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

所以我们称之为@form

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