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

Après avoir vu les bases théoriques et pratiques du développement Rails (lire notre article du 06/03/06), il est temps de passer à la pratique. Nous commençons notre article là où nous avons terminé le précédent, à savoir : nous avons créé un dossier d'application avec la commande rails NomDuProjet, nous avons placé la ligne de commande dans le dossier créé, et nous avons lancé le serveur avec la commande ruby script/server. La page d'accueil standard est normalement visible à l'adresse http://127.0.0.1:3000/.

Afin d'explorer les capacités dynamiques de Rails, nous aller une première application : un livre d'or. Pour adhérer au modèle MVC prôné par Rails, nous définissons notre livre d'or comme étant composé de Commentaires, chacun disposant d'un Auteur, d'un Contenu et d'une Date. Idéalement, créez un nouveau dossier en tapant rails livredor.

Il vous faudra avoir installé un gestionnaire de base de données reconnu par Rails : MySQL, SQLite ou PostgreSQL. Nous utiliserons ici MySQL 4.1, car MySQL est reconnu nativement par Ruby. Si MySQL est déjà installé, il reste à configurer la base de données.

Chaque projet Rails fonctionne avec trois bases de données : NomDuProjet_development, NomDuProjet_test et NomDuProjet_production. Toute la programmation et les tests quotidiens sont réalisés avec _development ; _test est une base temporaire utilisée pour les tests complets ; _production, enfin, est la base finale, une fois l'application terminée.

Il faut donc créer ces trois bases de données dans MySQL. Pour le moment, seule la première sera remplie de tables : le projet pouvant évoluer au fil du développement, il est inutile de dupliquer les premières tables dans _test ou _production. Notre table de base est donc telle que nous l'avons décrite plus haut :

CREATE TABLE `commentaires` (
  `id` int(11) NOT NULL auto_increment,
  `auteur` varchar(100) NOT NULL default '',
  `contenu` text NOT NULL,
  `quand` timestamp NOT NULL default CURRENT_TIMESTAMP,
  PRIMARY KEY  (`id`)
  )


Une application Rails commence réellement à se construire dès la mise en place de ses tables. En effet, par son utilisation intense de correspondances Objet-Relationnel, Rails se base fortement sur le contenu des tables pour établir ses conventions de nommage, et le développeur est supposé prendre les conventions de Rails en compte. Rails part ainsi du principe que la clef primaire d'une table est contenue dans la colonne id. Par ailleurs, une table est supposée être nommée au pluriel ("commentaires"), car Rails utilisera ensuite ce nom au singulier ("commentaire") pour faire référence à son contenu.

Assurez-vous donc d'avoir bien configuré le fichier config/database.yml. Celui-ci doit pointer directement vers votre serveur SQL. Nous utilisons une installation fraîche de MySQL 4.1, aussi notre fichier ressemble à ceci :

(...)
development:
  adapter: mysql
  database: livredor_development
  username: root
  password:
  host: localhost


Créons le modèle de mis en ligne d'un commentaire. Il sera généré automatiquement par Rails, avec la commande suivante :

ruby script/generate model Commentaire

Ce script crée trois fichiers, comme indiqué dans l'invite de commande :
app/models/commentaire.rb
test/unit/commentaire_test.rb
test/fixtures/commentaires.yml


Il crée également un nouveau dossier et le fichier attenant, répliquant le contenu de la base telle qu'indiquée dans database.yml :
db/migrate/001_migrate_commentaires.rb

Vous pouvez déjà ouvrir votre modèle commentaire.rb. Voici ce qu'il contient :

class Commentaire < ActiveRecord::Base
end


  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