L'architecture modèle-vue-contrôleur (MVC) que nous avons rencontrée pour la première fois au chapitre 1 n'est pas propre à Rails. En fait, elle est antérieure à Rails et au langage Ruby de plusieurs années. Rails, cependant, pousse l'idée de séparer les données, l'interface utilisateur et la logique de contrôle d'une application à un tout autre niveau.
Examinons les concepts qui sous-tendent la création d'une application à l'aide de l'architecture MVC. Une fois la théorie en place, nous verrons comment elle se traduit dans notre code Rails.
MVC en théorie
MVC est un modèle pour l'architecture d'une application logicielle. Il sépare une application en plusieurs composants :
- Des modèles pour gérer les données et la logique métier
- Contrôleurs pour gérer l'interface utilisateur et l'application
- Vues pour la gestion des objets de l'interface utilisateur graphique et la présentation.
Cette séparation a pour conséquence que les demandes des utilisateurs sont traitées comme suit :
- Le navigateur (sur le client) envoie une demande de page au contrôleur sur le serveur.
- Le contrôleur récupère les données dont il a besoin dans le modèle afin de répondre à la demande.
- Le contrôleur fournit les données récupérées à la vue.
- La vue est rendue et renvoyée au client pour que le navigateur l'affiche.