Формат Rails created_at для отображения только минуты, дня или недели

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

Например, если запись была создана 5 минут назад, она должна отображаться как

5m

5 дней назад:

5d

10 недель назад:

10w

и так далее.

Раньше я просто использовал time_ago_in_words, но предпочел бы более простой вид.


person Justin    schedule 02.01.2014    source источник
comment
У меня есть аналогичный ответ здесь: stackoverflow.com/a/20853768/1721198 может помочь.   -  person Billy Chan    schedule 02.01.2014
comment
Как вы хотите, чтобы отображались 5994 минуты?   -  person some    schedule 02.01.2014
comment
Я думаю, для этого это будет 4d, хороший звонок, хотя я добавлю к вопросу   -  person Justin    schedule 02.01.2014
comment
Обычный способ – показать до 59 минут, после этого до 23 часов, после этого до 6-30 дней, после этого восемь 52 недели или 11 месяцев, а после этого в годах.   -  person some    schedule 03.01.2014


Ответы (2)


Проверьте strftime, возможно, это вам поможет.

Если это не так, взгляните на to_formatted_s.

Надеюсь, это поможет =]

person Thyago B. Rodrigues    schedule 02.01.2014

Похоже, вам нужно создать собственное решение, например:

В вашем ApplicationHelper:

def short_time_ago_in_words(time)
  case time
  when (1.minute.ago)...(Time.now) then "1m"
  when...
  when (Date.today - 1)..(Date.today) then "1d"
  when (Date.today - 7)..(Date.today) then "1w"
  when...
  end
end
person Yossi Shasho    schedule 02.01.2014