Помогите с Ruby Date Compare - PullRequest
       1

Помогите с Ruby Date Compare

0 голосов
/ 15 апреля 2010

Да, я читал и делал Google много раз, но я все еще не могу заставить это работать ... возможно, я идиот :)

У меня есть система, использующая билеты. Дата начала - "made_at" в метках времени. Каждый билет закрывается через 7 дней после "create_at". В модели я использую:

def closes
  (self.created_at + 7.days)
end

Я пытаюсь создать другой метод, который будет принимать «закрытие» и возвращать его, сколько дней, часов, минут и секунд осталось до закрытия билета. Кто-нибудь хочет помочь и / или предупредить мои навыки? ;)

EDIT:

В идеале, я бы хотел, чтобы конечный результат был что-то вроде "6d14h22s" или что-то в этом роде.

Ответы [ 2 ]

2 голосов
/ 15 апреля 2010

Использование distance_of_time_in_words вспомогательный метод:

class Ticket < ActiveRecord::Base
  include ActionView::Helpers::DateHelper

  def closes_in_words
    distance_of_time_in_words(Time.now, self.closes)
  end
end
1 голос
/ 15 апреля 2010

Я не знаю ни одного хорошего способа произвольно форматировать длительности с помощью рельсов, но вы можете сделать это самостоятельно так:

def closes_in
  minutes = (Time.now - closes).to_i / 60
  days = minutes / (24*60)
  minutes -= days * 24*60
  hours = minutes / 60
  minutes -= hours * 60
  "#{days}d#{hours}h#{minutes}m"
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...