Pour avoir utilisé d’autres ORM, Active Record fonctionne comme beaucoup d’autres mais avec une touche de simplicité et une grande puissance.
Par exemple, aucune déclaration Ruby n’est nécessaire pour rendre un objet persistant, si la classe de cet objet hérite de Active Record, l’ORM inspectera la table correspondant à cette classe pour connaître l’ensemble et de ses champs et leur type. La classe implémente automatiquement les accesseurs pour chaque attribut.
Les associations entre entités se font sans effort, une déclaration dans votre modèle suffit. Vous pourrez après cela naviguer facilement dans votre grappe d’objets en écrivant du code Ruby, par exemple : comment.owner.name pour récupèrer le nom de l’auteur d’un commentaire. Active Record générera la requête SQL avec la bonne jointure automatiquement. Vous pouvez par la suite définir les politiques de suppression, de cache, de sauvegarde pour chaque relation.
La mise en place de règles de validations est déconcertante de facilité, une simple déclaration dans votre modèle vous permet d’assurer l’intégrité de vos enregistrements. De plus, ces règles de validations fonctionnent de pair avec la vue pour permettre sans effort l’affichage des erreurs dans un formulaire (même avec la localisation !).
Il est utile de préciser que l’utilisation d’Active Record n’est pas obligatoire, vous pouvez connecter à vos modèles d’autres types d’ORM selon vos besoins : Data Mapper, Mongoid, etc.
Je vous invite à lire les autres avantages de la série : les avantages de Ruby on Rails
24 juillet 2012 à 17:53
Je tenais à préciser que la couche de validation n’a plus de dépendance directe avec Active Record mais cela me semblait pertinant d’en parler dans cet article.