Обновление Rails 2.3.2 до Rails 2.3.14

На меня возложили ответственность за довольно большое устаревшее приложение Rails 2.3.2, и меня попросили добавить в это приложение достаточно сложный RESTful API, который выводит данные в формате JSON.

Проведя свое исследование, я пришел к выводу, что использование драгоценного камня RABL, вероятно, является лучшим планом, учитывая характер вызовов API. Однако я вижу, что зависимости RABL требуют ActiveSupport 2.3.14.

Теперь я предполагаю, что у меня не может быть и ActiveSupport 2.3.2, и ActiveSupport 2.3.14, работающих в одном приложении, и, если я правильно понимаю, если я обновлю ActiveSupport, мне нужно будет обновить остальные пакеты Rails как хорошо из-за требований зависимости.

Может ли кто-нибудь рассказать мне о различиях между Rails 2.3.2 и Rails 2.3.14 или где я могу найти эту информацию, чтобы иметь некоторое представление о том, могу ли я нарушить некоторые из существующих функций?

В качестве альтернативы, если между двумя версиями Rails есть серьезные различия, может ли кто-нибудь порекомендовать альтернативу RABL? Я просмотрел довольно много других, таких как Jsonify, JBuilder, Tequila и т. д., но RABL действительно привлекателен тем, что он строит ответ через представления, а не в контроллере, как некоторые другие.


person richard    schedule 11.09.2012    source источник
comment
Шаг 1 — установить Rails 2.3.14 и запустить набор тестов. Посмотрите, что, если что, сломается.   -  person jdl    schedule 11.09.2012
comment
Да спасибо. Я бы сделал, если б мог. Скажем так, предыдущим разработчикам, работавшим над этим устаревшим приложением, не нравились накладные расходы на обновление тестовых случаев. Одна из моих самых больших проблем с этой системой — полное отсутствие тестов :-(   -  person richard    schedule 11.09.2012


Ответы (1)


Ну, в конце концов, я не мог использовать драгоценный камень RABL или любой другой, если уж на то пошло.

Различия между двумя версиями ActiveSupport привели к тому, что приложение перестало работать с методами I18n.

Я не уверен на 100%, является ли это встроенной разницей, которая применяется ко всем приложениям, или это что-то особенное для этого устаревшего приложения, поскольку первоначальные разработчики сделали некоторые очень нетрадиционные вещи при создании приложения и, как я подозреваю, взломали базовый код Rails в нескольких местах.

Тем не менее, в итоге я сгенерировал JSON, который мне был нужен, используя драгоценные камни json и json_pure, которые довольно просто позволяют вам генерировать JSON из хэша. Они работают довольно хорошо и не нуждаются во многих зависимостях, которые требуются многим другим драгоценным камням.

Это означает, что вы должны собрать хэш внутри контроллера, что, на мой взгляд, далеко не идеально, поскольку это должно быть просто еще одно представление.

person richard    schedule 30.09.2012