Ответ 1
Это должно работать:
hours = ((created - updated) / 1.hour).round
Связанный вопрос: Рельсы Разница во времени в часах
Скажем, я создаю два объекта времени из моей модели пользователя:
created = u.created_at
updated = u.updated_at
Как рассчитать разницу между часами между двумя объектами времени?
hours = created - updated
Я хотел бы обернуть это методом и расширить класс Time. Мне трудно поверить, что мне нужно расширить его, но я не могу найти собственный метод, который обрабатывает прошедшее время с использованием разных единиц времени.
Это должно работать:
hours = ((created - updated) / 1.hour).round
Связанный вопрос: Рельсы Разница во времени в часах
Другой вариант - использовать помощник distance_of_time_in_words:
<%= distance_of_time_in_words u.created_at, u.updated_at %>
Надеюсь, вы сочтете это полезным :)
Я хотел бы добавить альтернативный ответ, используя метод, специфичный для рельсов. Класс Time имеет метод minus_with_coercion. Он сравнивает два раза и возвращает результат в секундах.
hours=(created.minus_with_coercion(updated)/3600).round