Rails日期格式在表单域中

Jac*_*ack 20 ruby ruby-on-rails

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

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

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

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

谢谢

Har*_*tty 33

您必须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'
Run Code Online (Sandbox Code Playgroud)

现在在script\consolelet中测试格式.

>> Date.today.to_s
=> "03/14/2010"

>> Time.now.to_s
=> "03/14/2010 13:20:55"
Run Code Online (Sandbox Code Playgroud)


Ran*_*mon 1

我不知道是否有全球性的设置,我只是在 ERB 中进行。

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

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