Rails настроил модель "time_ago_in_words" - своего типа - PullRequest
1 голос
/ 23 апреля 2011

Доброе утро всем!

Я работаю над приложением Rails, которое просто проверяет да или нет, а затем отображает строку created_at и в зависимости от того, какой флажок был установлен. Моя проблема в том, что мне нужно отображать created_at как другое значение, а не время. Если бы кто-то создал запись между 4:00 AM - 10:00 AM, он отобразил бы Завтрак в представлении для поля created_at. Если бы они создали его между 10:00 и 14:00, на нем отобразилось бы Обед .
Я гуглил часами, и самое близкое, что я мог придумать, это какой-то вариант time_ago_in_words, но на самом деле ничего не работает.
Как бы я реализовал что-то в этом роде?

Полное раскрытие: Я немного любитель в Ruby / RoR. Будь нежным ...

1 Ответ

5 голосов
/ 23 апреля 2011

Вы можете создать свой собственный

case created_at.hour
when (4..10)
  "Breakfast"
when (10..14)
  "Lunch"
when (14..22)
  "Supper"
else 
  "Night"
end

Вы также можете обернуть его как метод или расширить DateTime класс с ним

...