У меня есть чувство, что кто-то собирается указать на меня на другой вопрос, который отвечает на это, но я искал без удачи по этой простой проблеме.
У меня есть Activerecord со свойством даты и времени. Это возвращается как ActiveSupport:TimeWithZone. Я знаю, что не могу сравнить это с DateTime.now, потому что это не включает зону, таким образом, я должен использовать Time.zone. Имеет смысл.
То, что я задаюсь вопросом, является stylewise, там "более чистый" способ сделать это, чем вычитание и деление результата 86 400?
Вот то, что я делаю:
((Time.zone.now - myActiveRecord.visit_date)/86400).to_i
Работы, но кажутся un-rubyish, и я чувствую, что пропускаю что-то. Я должен бросать, выдерживая сравнение или преобразовывая некоторый другой маршрут, или это - действительно типичный способ сделать это в направляющих? Цените любые подсказки или ссылку на вопрос, который уже покрывает это.
Спасибо
Одна вещь, которую вы можете сделать, чтобы сделать это более читабельным:
((Time.zone.now - myActiveRecord.visit_date) / 1.day).to_i
Edit:
На самом деле вы можете избавиться от одного набора скобок с помощью:
(Time.zone.now - myActiveRecord.visit_date).to_i / 1.day