Valid XHTML     Valid CSS2    

DECRA, T.P. 6 :

     MVC en Ruby via ROR

Décomposition, Conception et Réalisation d'Applications

                    gilles.hunault "at" univ-angers.fr

Table des matières cliquable

  1. Découverte de Ruby

  2. Installation et test de ROR (première partie)

  3. Chapitre un, une première mini-application

  4. Chapitre deux, une vraie application

  5. Tout le reste du turoriel

  6. Ajout de fonctionalités

Il est possible d'afficher toutes les solutions via ?solutions=1 et de les masquer via ?solutions=0.

 

1. Découverte de Ruby

Commencer par lire le tuteur Ruby puis répondre aux questions suivantes :

  1. Quelle version de Ruby est installée dans les salles du département informatique de la faculté des sciences d'Angers ?

  2. Est-ce que le premier exemple standard de notre tuteur, bonjour.rb, fonctionne tel quel  ? A-t-on besoin de la première ligne require "date" ?

  3. Et le deuxième exemple standard, versions tdm.rb et tdm2.rb ? Quelle version est la plus fidèle à l'esprit de Ruby ?

  4. Est-ce que les exemples complémentaires nommés respectivement sql.rb, ndjpm.rb et demo_xml.rb fonctionnent tels quels  ?

Est-ce qu'il existe des Jupyter Notebooks pour Ruby ?

Solution :  

 

2. Installation et test de ROR (première partie)

Partie 2.1

Quelle version de gem est installée ? Est-ce que la commande gem install rails --version 3.0.5 s'exécute correctement ? Pourquoi ? Comment corriger ce problème ? Vérifier ensuite que le code suivant produit une version minimale d'une application Ruby :


         rails new miniROR
         cd miniROR
         bundle install
         rake db:setup
         rake db:migrate
         rake db:setup
         echo http://localhost:3000
         rails server -p 3000  -b 0.0.0.0
     

Partie 2.2

Si ce n'est pas le cas, est-ce que la commande gem install rails --version 5.2.1 s'exécute correctement ? Vérifier ensuite que le code suivant produit une version minimale d'une application Ruby :


         rails new miniROR
         cd miniROR
         bundle install
         rake db:setup
         rake db:migrate
         rake db:setup
         echo http://localhost:3000
         rails server -p 3000  -b 0.0.0.0
     

Voici ce qu'on devrait obtenir :

            non su

Partie 2.3

Si cela ne fonctionne toujours pas, lancer la commande _ruby_on_rails qui, dans les salles du département informatique de l'université d'Angers lance un docker avec ruby et rails préconfigurés.

Quelle est alors la version de ruby, de gem et de rails ?

Exécuter les commandes suivantes et vérifier que le serveur est disponible à l'adresse http://localhost:3000.


         rails new sample_app
         cd sample_app
         rake db:migrate
         rake db:setup
         rails server -p 3000 -b 0.0.0.0
     

Partie 2.4

Quels sont les répertoires et les fichiers créés (en identifiez-vous certains ?) si on exécute


     rails new demo
     cd demo
     bundle install
     find . > ror-lst1.txt
     

Quel est le message d'avertissement si on exécute ensuite


     rake db:setup
     

Exécuter alors


     rake db:migrate
     rake db:setup
     

Quels fichiers ont été alors créés (à mettre dans ror-lst2.txt) ?

Exécuter maintenant


     echo http://localhost:3000
     rails server -p 3000 -b 0.0.0.0
     

Qu'affiche la console si on ouvre la page index du serveur ?

Que contient le fichier Gemfile et quels groupes sont définis dans ce fichier ?

Solution :  

 

3. Chapitre un, une première mini-application

On ne va pas suivre ici la version française du tutoriel qui n'est pas à jour (mais vous pouvez vous en servir lorsque vous ne comprenez pas les termes anglais) mais plutôt la version anglaise du tutoriel.

Lire le chapitre 1 jusqu'à la fin de la section 1.3 (aucune manipulation pour l'instant).

Attention : pour ce qui suit, il ne faut pas créer le répertoire ~/environment comme indiqué dans le tuteur. Vous pouvez vous contenter du répertoire environment dans le répertoire Mes_projets_ruby que vous retrouvez aussi dans votre home directory suite au lancement du docker. De même, vous ne devez pas exécuter rails server comme indiqué dans le tutorial, mais rails server -p 3000 -b 0.0.0.0 sous peine de ne pouvoir accéder au serveur.

Continuer alors la lecture du chapitre 1, exécuter les commandes indiquées jusqu'à la fin de la section 1.3.2 pour créer l'application hello_app et vérifier que la commande rails server -p 3000 -b 0.0.0.0 affiche bien ce qu'on attend.

Voici ce qu'on doit obtenir :

            non su

Effectuer les manipulations de la section 1.3.3 (fichiers application_controller.rb et routes.rb) pour que la commande rails server -p 3000 -b 0.0.0.0 affiche désormais hello , world! et bonjour à tous !!.

Voici ce qu'on doit obtenir :

            non su

Lire ensuite la fin du chapitre 1 (section 1.4 et suivantes) mais sans réaliser les manipulations git, bitbucket ou heroku. Par contre on essaiera de comprendre ce qu'elles représentent.

Solution :  

 

4. Chapitre deux, une vraie application

Lire le chapitre 2 et réaliser toutes les manipulations proposées sauf la modification du fichier Gemfile et toujours sans les parties git, bitbucket ou heroku jusqu'à la section 2.3.1 incluse. On ne saisira pas non plus le numéro de version _5.1.6_ dans les commandes rails. Après les commandes rails generate scaffold... et rails db:migrate, on créera quelques utilisateurs et des micro-messages, comme ci-dessous :

            non su

            non su

            non su

            non su

            non su

            non su

Vérifier ensuite que vous arrivez à imposer une longueur maximale de micropost de 140 caractères comme indiqué dans la section 2.3.2. Lire (sans manipulations) la section 2.3.5 puis essayer de trouver où est la base de données utilisées. Quel est son schéma (iste et structure des tables) ?

Solution :  

 

5. Tout le reste du turoriel

Continuer les chapitres et essayer de réaliser un maximum de manipulations. Vous pouvez essayer de faire un résumé des commandes et des gemmes utilisées.

Solution :  

 

6. Ajout de fonctionalités

Compléter le site avec la saisie d'une date de naissance, le calcul et l'affichage de l'age des personnes, la saisie d'un nombre moyen de films vus par semaine (au cinéma, à la télé, sur ordinateur ou tablette...), l'affichage de l'indication j'aimerais lire plus de livres en mode oui/non et le dépot d'un CV au format PDF avec la consultation possible par les autres utilisateurs. Au passage, vous en profiterez pour traduire tous les affichages en français, histoire de prouver que vous savez d'où vient chaque page.

En option, implémentez aussi le service des pages en XHTML strict plutot qu'en HTML 5 (une validation sans erreur ni avertissement avec HTML Validator est conseillée), avec l'icone de validation associée, le pourcentage des gens qui aimeraient et qui n'aimeraient pas lire plus de livres, le masquage et l'affichage en Javascript de j'aimerais lire plus de livres pour ceux qui en lisent déjà suffisamment, une liste bien présentée disponible en PDF (création à la volée) de tous les utilisateurs, un graphique SVG qui fournit un box-plot des nombres de films par semaine, un graphique PNG de l'histogramme des fréquences des lecteurs et des non lecteurs...

Solution :  

 

       retour au plan de cours  

 

Code-source PHP de cette page ; code Javascript associé.

 

retour gH    Retour à la page principale de   (gH)