Rails ha da sempre fondato lo sviluppo su due motti uno dei quali è Convention over Configuration. In altre parole, spesso si adottano convenzioni in alternativa a corposi e pesanti file di configurazione.
Questa filosofia è difficile da adattare ad applicazioni legacy. Di conseguenza non è così semplice migrare applicazioni e database preesistenti a Rails. Normalmente, è più semplice ed efficace riprogettare l’applicazione completamente in Rails sfruttando a pieno le qualità del framework e del linguaggio Ruby.
Inoltre, poiché Ruby < 1.9.0 non dispone di una virtual machine, è necessaria un’approfondita conoscenza del framework per gestire al meglio la piattaforma senza compromettere le performance, soprattutto nel caso di applicazioni con un traffico intenso.