Подтвердить что ты не робот

Формат даты Rails в поле формы

Мне нужны мои даты в формате mm/dd/year в текстовых полях. Однако в настоящее время они отображаются как 2010-03-26.

Есть ли глобальная настройка, которую я могу установить, чтобы изменить это?

Я попробовал следующее, которое, похоже, обновляет метод .to_s, но поля формы остаются неизменными.

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

Спасибо

4b9b3361

Ответ 1

Вам нужно зарегистрировать формат 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"

Ответ 2

Я не знаю, есть ли глобальная настройка для этого в любом месте, я просто делаю это в ERB.

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

В качестве альтернативы вы можете включить это в вспомогательную функцию, чтобы сделать ее СУХОЙ.

Ответ 3

Я знаю, что это очень старый вопрос, но вы можете использовать date_field вместо text_field. Возможно, это был не вариант, когда вы задавали этот вопрос изначально.

Он отображает дату в mm/dd/yyyy, что является вашим намерением.

<%= date_field :column_name %>

Ответ 4

Помощник формы date_select предоставляет селектор даты "голые кости".