2010-09-07 2 views
24

Я нахожу, что повторяю типизацию многих strftime, которые я определил.где положить правила формата времени в Rails 3?

Наблюдая за railscasts Райана Бейтса ep 32/33 (я думаю), я создал настраиваемую опцию для метода to_s, как в Time.now.to_s, так что я могу делать Time.now.to_s (: sw) где: sw - мой собственный метод, например, для получения «23 сентября 2010 года, 5:00 вечера».

Но проблема в том, что я не знаю, где положить определение # sw. Должно ли оно находиться в файле в папке инициализатора? Или он должен идти в application.rb?

Спасибо!

+0

BTW http://strftime.net/ помогает много – Dorian

ответ

22

У меня есть файл, содержащий config/initialisers/time_formats.rb:

... 
Time::DATE_FORMATS[:posts] = "%B %d, %Y" 
Time::DATE_FORMATS[:published] = "%B %Y" 
... 

Вам просто нужно перезагрузить сервер, чтобы изменения взяли.

+0

Хорошо, я так и думал. Также потому, что вы можете организовать эти «помощники» в файлах, а не в строках в application.rb Спасибо! –

5

Использовать 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

45

Использование "Время" вместо "даты" в ваших локалей файл, так как Rails временные метки являются DateTimes.

в конфигурации/локалей/en.yml

en: 
    time: 
    formats: 
     default: "%Y/%m/%d" 
     short: "%b %d" 
     long: "%B %d, %Y" 

в приложение/просмотров/сообщений/show.html.haml

= l post.updated_at 
    = l post.created_at, :format => :long 
+5

Также см. Http://strftimer.com/ для получения информации о форматах времени создания. – tee

0

Пожалуйста, прочтите этот пост:

Rails - to_formatted_s

Создать файл с именем: конфиг/Инициализаторы/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, и т.д.)

+0

А, я тянул свои волосы, пытаясь понять, почему мои форматы не меняются. Спасибо за отзыв сервера! – AndrewJM

Смежные вопросы