Comment générer un lisible par l'homme intervalle de temps à l'aide de ruby on rails

J'essaie de trouver la meilleure façon de générer la sortie suivante

<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

J'ai commencé ce code

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

Est-il un moyen plus efficace de le faire. Il semble que beaucoup de code redondant pour quelque chose de super simple.

Une autre utilisation est la suivante:

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

Le code est similaire, mais au lieu de cela j'utilise de Temps.maintenant:

def time_since_posted
  time = (self.created_at..Time.now).count
  ...
  ...
end
InformationsquelleAutor csanz | 2010-11-09