La première version de Ruby on Rails date de juillet 2004. Le framework a été extrait de Basecamp, un outil de gestion de projets développé par David Heinemeier Hansson.
La première version stable (1.0) est sortie le 14 décembre 2005.
A partir de cette date Ruby on Rails a marqué le monde du développement web. On a vu pousser un ensemble de Framework Web Rails-like (Notamment CakePHP, Symfony et CodeIgniter rien que pour le langage PHP)
Une preview release de la version 2.0 a été annoncée le 30 septembre 2007. Rails 2.0 apporte principalement :
.rhtml
devient un fichier .html.erb
, c'est-à-dire un fichier interprété par eruby et dont le résultat est de l'HTML) ;redirect_to(person)
) ;La dernière version , RoR 2.3.8 est sortie le 25 mai 2010. Rails 2.3 apporte l'usage du middleware Rack : qui permet de gérer des requêtes de niveau serveur, et intègre un reverse proxy. Une autre modification importante est la gestion des formulaires enfants d'un objet parent (nested form)
Rails-3 est en fait la rencontre entre Rails et Merb. Suite à une réécriture complète, agnostique (l'API générale est déconnectée d'une bibliothèque particulière). Une sortie béta date du 5 février 2010.
Rails peut fonctionner avec WEBrick, le serveur HTTP fourni avec Ruby. Cette méthode est souvent utilisée pour le développement et les tests. En production, Apache ou lighttpd ou encore nginx avec Mongrel ou thin sont recommandés.
L'usage de FastCGI n'est plus recommandé à partir de la release 2.3. En effet la bibliothèque initiale mod_ruby avec Apache a été retravaillée, et l'interface avec Apache utilise maintenant Passenger. Passenger est aussi disponible pour nginx.
AJAX permet de réaliser des pages dynamiques avec Javascript et XML pour envoyer des requêtes au serveur sans recharger la page dans le navigateur. Rails offre plusieurs méthodes afin de simplifier l'utilisation d'AJAX. L'apport des RJS est de permettre la génération de code javascript à destination du navigateur par l'intermédiaire de ligne ruby.
Plusieurs systèmes de gestion de base de données sont supportés : SQLite, MySQL, PostgreSQL, DB2, Oracle et Microsoft SQL Server.
Par défaut, SQLite3 est utilisé.
Les courriels sont générés au niveau des vues. On peut ainsi créer une vue au format texte, et une vue HTML, envoyé dans le même courriel.
La gestion des pièce jointe est aussi supportée et facile d'emploi.
En ce qui concerne la gestion des courriels entrants, il est possible de créer un utilisateur virtuel dans Postfix ou sendmail . Mais le plus aisé est de contrôler une boite mail par IMAP avec la bibliothèque native de ruby. La gestion des pièces jointes des courriels entrants utilise le même principe que les courriels générés.