Как сгенерировать удобочитаемый временной диапазон с помощью ruby ​​on rails

Я пытаюсь найти лучший способ сгенерировать следующий вывод

<name> job took 30 seconds
<name> job took 1 minute and 20 seconds
<name> job took 30 minutes and 1 second
<name> job took 3 hours and 2 minutes

Я запустил этот код

def time_range_details
  time = (self.created_at..self.updated_at).count
  sync_time = case time 
    when 0..60 then "#{time} secs"       
    else "#{time/60} minunte(s) and #{time-min*60} seconds"
  end
end

Есть ли более эффективный способ сделать это. Похоже, много избыточного кода для чего-то очень простого.

Другое использование для этого:

<title> was posted 20 seconds ago
<title> was posted 2 hours ago

Код для этого похож, но вместо этого я использую Time.now:[12205 visible

27
задан csanz 9 November 2010 в 16:52
поделиться