Ich habe das Gefühl, dass mich jemand auf eine andere Frage hinweisen wird, die diese Frage beantwortet, aber ich habe bei dieser einfachen Frage vergeblich gesucht.
Ich habe einen Activerecord mit einer datetime-Eigenschaft. Er wird als ActiveSupport:TimeWithZone zurückgegeben. Ich weiß, dass ich das nicht mit DateTime.now vergleichen kann, weil das keine Zone enthält, also muss ich Time.zone verwenden. Das macht Sinn.
Ich frage mich, ob es stilistisch einen "saubereren" Weg gibt, dies zu tun, als das Ergebnis zu subtrahieren und durch 86400 zu teilen?
Ich tue Folgendes:
((Time.zone.now - myActiveRecord.visit_date)/86400).to_i
Es funktioniert, aber es sieht nicht sehr rosig aus, und ich habe das Gefühl, dass ich etwas vermisse. Sollte ich Casting, Vergleich oder konvertieren eine andere Route oder ist dies wirklich der typische Weg, dies in Rails zu tun? Ich freue mich über jeden Tipp oder einen Link zu einer Frage, die dies bereits abdeckt.
Dankeschön
0 Stimmen
Wollen Sie am Ende Worte ausgeben?
0 Stimmen
Ich bin darauf beschränkt, dies in einem Modell im Moment zu tun, so dass ich nicht die Vorteile der time_ago_in_words-Helfer nutzen kann. Ich nehme nur den int-Wert zurück zu einer Client-Anwendung. Vielen Dank für das Feedback alle.