Измените формат даты в представлении на дд / мм / гггг - PullRequest
9 голосов
/ 14 марта 2011

Формат даты по умолчанию в Ruby - гггг-мм-дд, но мне нужно, чтобы они были в формате дд / мм / гггг в представлении

Я написал файл date_format в config/initializers как:

Time::DATE_FORMATS.merge!( :uk_format => '%m/%d/%Y')

Это не сработало, так как мне нужно позвонить date.to_s(:uk_format), чтобы использовать этот формат.Но так как я использую <%= f.text_field :paymentDate %> для отображения даты, я не уверен, что могу добавить to_s к этому делу.

Может кто-нибудь помочь мне, пожалуйста.


Редактировать 1

На самом деле date.to_s (: uk_format) тоже не работает, как правильно использовать инициализатор .....?

Ответы [ 2 ]

27 голосов
/ 14 марта 2011

См .: Изменить формат по умолчанию Ruby Time

Адаптировал мой ответ, указанный выше, для указанной даты и формата:


Поскольку вы используете Rails, воспользуйтесь поддержкой I18n: http://guides.rubyonrails.org/i18n.html#adding-date-time-formats

# config/locales/en.yml
en:
  date:
    formats:
      default: "%d/%m/%Y"

Затем вы можете позвонить I18n.l Date.today, чтобы получить отформатированную дату. Или, по вашему мнению, вы можете использовать <%= l @foo.created_at %>.

2 голосов
/ 09 февраля 2012

Попробуйте вместо этого:

Time::DATE_FORMATS.merge!({:db => '%m/%d/%Y', :uk_format => '%m/%d/%Y'})
Date::DATE_FORMATS.merge!({:db => '%m/%d/%Y', :uk_format => '%m/%d/%Y'})
...