Я искал самое легкое решение для преобразования всех значений Datetime в ISO 8601 при отправке их конкретному реквестеру из API. Я был в состоянии обезьяны патча Time#to_json
следующие:Как сделать все выходы времени ISO 8601 в API Ruby + Grape
class Time
def to_json(options = {})
self.iso8601.to_json
end
end
И требую файла в before
обратного вызова винограда, когда PARAMS показал запрос исходит от желаемого места.
Это лучший способ достичь этого? Мог ли я вместо этого сделать что-то в обращении after
Винограда, чтобы прокрутить мои данные и преобразовать значения там? Патч обезьяны Time#to_json
выполняет свою работу, но мне кажется смешно. Хотя я новичок в Ruby.
Ваши инстинкты хороши. Классы переустановки обезьян должны использоваться только в качестве последнего средства. В вашем случае я думаю, что это плохая идея, потому что кто знает, где еще в программе можно было бы полагаться на поведение по умолчанию - и если не сейчас, возможно, в будущем. Вы можете добавить это сообщение в отдельные экземпляры времени, если вы можете выяснить, какие экземпляры нужно изменить. –
Где ваши экземпляры 'Time'? Что вы используете в качестве бэкэнд? Не могли бы вы создать класс-оболочку (презентатор) для 'Time' и использовать это вместо этого? –