TUTORIEL OUTILS 
Première application Ruby on Rails
Découverte pratique de Rails, le framework Web en Ruby, et de l'un des nombreux avantages de ses conventions : la mise en relation automatique entre le code et la base de données, au travers du scaffolding. (11/04/2006)
<< 1. Mise en place | 2. Fonctionnement

Rien de bien affriolant, en apparence. Nous la remplirons plus tard, pour le moment il nous faut un contrôleur pour... contrôler ce modèle :

ruby script\generate controller Commentaire

D'autres fichiers sont créés :
app/views/commentaire
app/controllers/commentaire_controller.rb
test/functionnal/commentaire_controller.test_rb
app/helpers/commentaire_help.rb


Tout ne nous est pas utile pour le moment. Pointez votre navigateur vers http://127.0.0.1:3000/commentaire/ pour voir la vue qui vient d'être créée. Le serveur vous indique ceci : "Unknown action - No action responded to index". Il vous faut indiquer l'action par défaut de cette vue. Cela peut se faire par le biais d'un contrôleur. Ouvrez simplement commentaire_controller.rb, et ajoutez le texte nécessaire pour parvenir au contenu suivant :

class CommentaireController < ApplicationController
  scaffold :commentaire
end


Nous touchons ici à l'un des "tours de magie" de Rails. La commande scaffold crée véritablement la liaison entre Rails et MySQL. Constatez cela en retournant à l'adresse http://127.0.0.1:3000/commentaire/, voici ce qui vous y verrez :


Rails cherche à afficher tous les commentaires ajoutés. Il n'y en a pas, donc son tableau ne contient que les en-têtes, mais la page présente également un lien "New commentaire". Cliquez dessus, et vous arrivez sur la page présente à droite :

Cette page est le reflet précis de votre table MySQL : tous les champs déclarés dans la table disposent d'un élément de formulaire adapté à leur type, et dans l'ordre de déclaration dans la table.

Cette page est également fonctionnelle, vous pouvez directement remplir votre base en utilisant ce formulaire produit par le simple scaffold.

Encore mieux : modifiez le contenu de la table, par exemple en y ajoutant un champ titre identique au champ auteur, juste en dessous de l'id, puis rechargez la page http://127.0.0.1:3000/commentaire/new, voici ce que vous obtiendrez :


Vous découvrez ainsi en direct toute la puissance de la correspondance Objet-Relationnel : Rails sera toujours au fait de vos dernières modifications dans la table. Entrez un commentaire dans votre gestionnaire de contenu, et validez, vous obtenez la page suivante :


Chaque ligne de contenu est modifiable via ce gestionnaire, avec les liens Show, Edit et Destroy à droite, qui correspondent à trois des actions fréquentes sur les lignes d'une table SQL (résumées par l'acronyme CRUD : Create, Retrieve, Update, Delete). Ici encore, les conventions montrent leur intérêt.

  Forum

Réagissez dans les forums de JDN Développeurs

Le scaffold, ou échafaudage, est l'une des fonctionnalités-clefs de Rails. Etant donné que ce dernier est constamment au fait de ce que contient la base de données grâce à ActiveRecords (pour peu que la base soit remplie en suivant les conventions établies), scaffold pousse le concept CRUD un peu plus loin en mettant en place les actions fréquentes avec une simple ligne de code et le modèle adéquat.

scaffold est la première étape de l'apprentissage de Rails, mais certainement pas la dernière.

<< 1. Mise en place | 2. Fonctionnement
 
Xavier Borderie, JDN Développeurs
 
Accueil | Haut de page
 
 





Quand achetez-vous le plus en ligne ?
Du lundi au vendredi
Le samedi
Le dimanche

Tous les sondages