Hallo,
das ist jetzt bestimmt nicht die Antwort, die ihr euch erhofft habt, aber: Rails 2.2 ist fast 4 Jahre alt und seit fast 2 Jahren eingestellt. Das heisst, dass ihr eigentlich auf keine der aktuelleren Versionen der 3er-Serie upgraden, ohne dass Arbeit auf euch zukommt, da sie keinen Migrationspfad von 2.2 anbieten. Die einzige Option, die euch aus der 2er-Serie bleibt, ist Rails 2.3 und das ist inzwischen auch auf dem besten Weg in Richtung Einmottung (es kriegt nur noch Security-Fixes). Ruby 1.8.7 (inklusive REE) hat den End-Of-Life-Status erreicht und wird nur noch bis nächstes Jahr mit Sicherheitspatches versorgt.
Nach verschiedensten Erfahrungsberichten ist das Problem allerdings schaffbar. Die API hat sich größtenteil nach aussen nicht oder wenig geändert. Als Beispiel:
http://www.getharvest.com/blog/2011/01/harvest-is-running-rails-3/Ruby 1.8 auf Ruby 1.9 ist meiner Erfahrung nach inzwischen sehr schaffbar: Die einzigen Syntax-Unterschiede treten a) selten auf und b) sind mit einem einfachen find-and-replace behoben. Dasselbe gilt für API-Changes. Einziges großes Problem können unsauber geführte Datenbanken mit unterschiedlichen Encodings in den Feldern sein, das beisst sich mit dem neuen Encoding-System. Wenn ihr auf biegen und brechen nicht auf 1.9 wollt, würde ich euch erstmal JRUBY als Interpreter im 1.8-Modus empfehlen - der wird noch ne Weile länger gepflegt (am 1.7.0 muss er aber explizit aktiviert werden). Rails 4 wird 1.8.7-Support allerdings einstellen.
Das größte Problem sind eventuelle Drittbibliotheken, die sollten aber inzwischen alle funktionieren, sofern sie denn noch gepflegt sind. Aber das gilt für Rails-Plugins und Rails 3 auch.
Ich würde euch empfehlen, bei einem solche Rückstand konzentriert auf aktuelle Versionen zu bauen und dann am Ball zu bleiben. Das ist zwar bei jedem Release Aufwand, aber man wird nicht abgehängt.
Gruß,
Skade