Ответ 1
У меня есть файл config/initialisers/time_formats.rb
, содержащий:
...
Time::DATE_FORMATS[:posts] = "%B %d, %Y"
Time::DATE_FORMATS[:published] = "%B %Y"
...
Вам просто нужно перезагрузить сервер, чтобы получить изменения.
Я нахожу себя, повторяя типизацию многих strftime, которые я определил.
Наблюдая за Ryan Bates railscasts ep 32/33 (я думаю), я создал настраиваемую опцию для метода to_s, как в Time.now.to_s, так что я могу делать Time.now.to_s (: sw), где: sw - мой собственный метод, например, для получения "23 сентября 2010 года, 5:00 вечера".
Но проблема в том, что я не знаю, где поставить определение #sw. Должно ли оно находиться в файле в папке инициализатора? Или он должен идти в application.rb?
Спасибо!
У меня есть файл config/initialisers/time_formats.rb
, содержащий:
...
Time::DATE_FORMATS[:posts] = "%B %d, %Y"
Time::DATE_FORMATS[:published] = "%B %Y"
...
Вам просто нужно перезагрузить сервер, чтобы получить изменения.
Используйте "время" вместо "даты" в вашем файле локалей, так как временные метки Rails - это время.
в config/locales/en.yml
en:
time:
formats:
default: "%Y/%m/%d"
short: "%b %d"
long: "%B %d, %Y"
в приложении /views/posts/show.html.haml
= l post.updated_at
= l post.created_at, :format => :long
Использовать API Rails I18n.
# config/locales/en.yml
en:
date:
formats:
default: "%Y-%m-%d"
short: "%b %d"
long: "%B %d, %Y"
# in views
= l post.updated_at # will use default format of date in locales yml file
см. I18n API
Пожалуйста, прочтите это сообщение:
Создать файл с именем: config/initializers/time_formats.rb
Time::DATE_FORMATS[:my_custom_time_format] = "%Y-%m-%d %H:%M"
И вы можете использовать:
formated_date = my_date.to_formatted_s(:my_custom_time_format)
Примечание. Необходимо перезапустить сервер рельсов (WEBRick, FCGI и т.д.)