Формат даты Rails в поле формы - PullRequest
20 голосов
/ 14 марта 2010

Я бы хотел, чтобы мои даты в формате мм / дд / год были в текстовых полях. Однако в настоящее время они отображаются как 2010-03-26.

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

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

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

Спасибо

Ответы [ 4 ]

33 голосов
/ 14 марта 2010

Вы должны зарегистрировать формат 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"
1 голос
/ 14 марта 2010

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

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

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

0 голосов
/ 12 февраля 2017

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

0 голосов
/ 29 сентября 2015

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

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

<%= date_field :column_name %>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...