2016-05-12 5 views
0

У меня есть приложение, реализующее API RESTful. У меня есть два метода: create_order и order_status. Первый метод создает порядок и сохраняется его с текущим временем в order.time поле:Относительный расчет времени

order.time = Time.now 

второй метод отвечает с закодированным значением:

:eta => 20.minutes.from_now.to_i 

Вместо возвращении жёстко прописанные 20 минут, как может Я возвращаю относительное значение, которое уменьшается с истекшим временем (в зависимости от времени, когда был запрошен статус)?

В начале заказа они одинаковы (20.minutes.from_now.to_i), но если запрос сделан через 5 минут, он должен быть 15.minutes.from_now.to_i.

+0

Как 'order.time + 20.minutes'? – Stefan

+0

@Stephat, который будет константой, которая не зависит от текущего времени запроса. – dds

+0

Предположим, что начало заказа - 12:00, ETA вычисляется через '20.minutes.from_now', что дает 12:20. Пять минут спустя (это 12:05), ETA следует рассчитать через '15.minutes.from_now', что дает 12:20. Я что-то упускаю? – Stefan

ответ

0

Я хотел бы сохранить какой-нибудь другой атрибут вместе с order.time

Например: order.eta = Time.now + 1200

Или еще: order.processing_time = 1200, а затем order.eta можно вычислить.

Мне нравится второе решение лучше, позволяя различные времена обработки для разных заказов.

Смежные вопросы