Rails日期格式在表单域中

我想在文本字段中以mm / dd / year格式显示日期。 但是,他们目前显示为2010-03-26。

我可以设置一个全局设置来改变它吗?

我尝试了以下,似乎更新.to_s方法,但表单字段保持不变。

ActiveSupport::CoreExtensions::Date::Conversions::DATE_FORMATS.merge!(:default => '%m/%d/%Y') 

谢谢

您必须在初始化程序中注册default格式。

将此行添加到config/initializers/date_time_formats.rb

 Date::DATE_FORMATS[:default] = '%m/%d/%Y' # if you want to change the format of Time display then add the line below Time::DATE_FORMATS[:default]= '%m/%d/%Y %H:%M:%S' # if you want to change the DB date format. Time::DATE_FORMATS[:db]= '%m/%d/%Y %H:%M:%S' 

现在在script\console测试格式。

 >> Date.today.to_s => "03/14/2010" >> Time.now.to_s => "03/14/2010 13:20:55" 

我不知道在任何地方是否有全球性的设置,我只是在ERB中这样做。

 <%= text_field_tag("air_date_date", air_date.blank? ? "" : air_date.strftime("%m/%d/%Y"), :class => "date-input text") %> 

或者,您可以将其分解为辅助函数以使其干燥。

我知道这是一个非常古老的问题,但您可以使用date_field而不是text_field 。 当你最初提出这个问题时,也许这不是一个选择。

它以mm/dd/yyyy显示日期,这是您的意图。

<%= date_field :column_name %>

date_select表单助手提供了“裸骨”日期选择器。