Enseignements

Ruby on Rails TP 2

Programmation Web avec Ruby on Rails — TP2

On recommence avec une vm!
Comme l’installation globale faite lors du premier TP ne fonctionne pas bien, les etapes suivantes ont ete corrige afin de vous permettre de faire une installation individuelle de la machine virtuelle vmware bitnami sur votre machine. Refaites les premieres etapes en suivant les indications annotées nouveau!

Etape 1 : installation ruby

Nous allons utiliser la ‘ ’pile Ruby” (ruby stack) version 2.2-X, disponible sur cette page:

Vous avez 3 façons d’utiliser cette pile, vous choisirez l’une des deux premières:

  • sous forme de machine virtuelle, executer dans vmware/fusion ou virtualbox
  • sous forme de packetage a installer directement son ordinateur
  • sous forme d’image pour cloud (mais c’est réservé aux pros car il faut s’abonner a un service)

nouveau! Sur vos machine de la fac, vous allez installer la machine virtuelle bitnami dans le repertoire /home/M1Systeme/TP_ROR

Creez-vous un sous-repertoire dans ce repertoire, place-vous dedans avec la commande cd et telechargez l’image, comme suit:

$ cd /home/M1Systeme/TP_ROR
$
mkdir $USER
$
cd $USER
$
wget http://bitnami.org/files/stacks/rubystack/2.2-2/bitnami-rubystack-2.2-2-ubuntu-10.10.zip

Lorsque l’installation est terminee, decomprimez l’archive et lancez la vm avec la commande vmplayer:

$ unzip *.zip
$
vmplayer bitnami*

Une fois que la vm est demarree, vous pouvez vous connecter avec le login ‘bitnami’ et le mot de passe ‘bitnami’. (Vous devrez les changer au demarrage).

Une fois que vous etes connecte, lancez un shell root avec la commande sudo, demarrez le serveur ssh et installez le plugin hobo:

$ sudo bash
$
/etc/init.d/ssh start
$ gem install hobo

Etape 2 : utiliser le bon ruby (a chaque fois que vous ouvrez un terminal)

nouveau! Bonne nouvelle: avec la vm bitnami, plus besoin d’executer la commande setenv.sh!!

Si vous avez installe le paquetage sur votre ordi (solution2) il faut faire attention a ne pa se tromper de version de Ruby. A chaque fois que vous commencez a travailler, il faut a configurer l’environnement. Supposons que votre rubystack est installee en /usr/local/rubystack-2.2–2/ (c’est le cas des machines de la fac), alors il faut executer la commande suivante dans la fenêtre shell que vous allez utiliser:

Etape 3 : installer un IDE ruby

nouveau! Pour installer netbeans dans la machine virtuelle:

  • retrouvez l’adresse ip de la machine virtuelle avec la commande
  • connectez-vous par ssh depuis une nouvelle fenetre terminal, avec l’option -X
  • utilisez la commande wget pour telecharger netbeans

$ bitnami@linux:~$ ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:0c:29:dc:78:f9
inet addr:192.168.0.70 Bcast:192.168.0.255 Mask:255.255.255.0

$ ssh -X bitnami@192.168.0.70
The authenticity of host '192.168.0.70 (192.168.0.70)' can't be established.
RSA key fingerprint is a9:6d:1d:c3:e7:21:05:22:2c:2e:2a:a1:c2:b3:ac:f2.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.0.70' (RSA) to the list of known hosts.
bitnami@192.168.0.70's password:
Linux linux 2.6.35-28-virtual #50-Ubuntu SMP Fri Mar 18 22:28:02 UTC 2011 i686 GNU/Linux
Ubuntu 10.10

Welcome to Ubuntu!
* Documentation: https://help.ubuntu.com/
Last login: Sun Dec 11 17:20:35 2011 from typote.olivier.net
bitnami@linux:~$
wget http://download.netbeans.org/netbeans/7.0.1/final/bundles/netbeans-7.0.1-ml-linux.sh

Etape 4 (la toute premiere fois)

Il faut installer la bonne version de hobo a l’aide de la commande gem:

$ gem install -v 1.0 hobo —no-ri —no-rdoc
WARNING: You don’t have /u/profs/dalle/.gem/ruby/1.8/bin in your PATH,
gem executables will not run.
Fetching: hobosupport-1.0.0.gem (100%)
Fetching: hobofields-1.0.0.gem (100%)
Fetching: hobo-1.0.0.gem (100%)
Fetching: multi_json-1.0.4.gem (100%)
Fetching: activesupport-3.1.3.gem (100%)
Fetching: i18n-0.6.0.gem (100%)

Fetching: rdoc-3.11.gem (100%)
Depending on your version of ruby, you may need to install ruby rdoc/ri data:
≤ 1.8.6 : unsupported
= 1.8.7 : gem install rdoc-data; rdoc-data —install
= 1.9.1 : gem install rdoc-data; rdoc-data —install
≥ 1.9.2 : nothing to do! Yay!
Fetching: railties-3.1.3.gem (100%)
Fetching: bundler-1.0.21.gem (100%)
Successfully installed will_paginate-3.0.2
Successfully installed hobosupport-1.0.0

Etape 5 : Ma premiere appli RoR

Ouvrez un nouveau terminal et connectez-vous avec le login bitnami par ssh. Pour pouvoir visualiser les pages web du serveur web lance dans la vm depuis la machine hote, vous devez mettre en place un tunnel ssh avec l’option -L, et utiliser l’option -X pour pouvoir utiliser X11:

$ ssh -X -L 7788:localhost:3000 bitnami@192.168.0.70

Dans la vm, utilisez la commande rails pour créer une application RoR appelée UneTable. Avec Rails 2.3.X la syntaxe est la suivante:

$ rails UneTable

Vous pouvez ensuite lancer le serveur avec la commande suivante :

$ ./script/server

Et vous pouvez étudier le résultat sur la machine hote, visible sur la page http://localhost:7788/, qui doit ressembler à ce qui suit:

Etape 6 : intialiser la base de donnees

Vous n’avaez pas vous soucier de l’installation d’un base. Par defaut RoR utilise uen version legere de BD SQL nommée SQLite. Elle est directement prête à l’emploi.

Pour manipuler la base de données, il faut utiliser la commande rake.

Dans votre fenêtre shell, essayez d’abord la commande

$ rake -T

Que fait-elle? Utilisez son résultat afin de trouver comment créer, détruire et recréer la base. Allez-y sans crainte, à ce stade vous prenez peu de risque de faire une fausse manip fatale!

Etape 7 : lancer l’environnement Netbeans

Au démarrage, NetBeans peut vous proposer de faire des mises à jour automatique (petite fenetre en bas a droite). Acceptez et choisissez l’option qui permet de laisser les MàJ se dérouler en arrière plan.

Ensuite, la première chose que vous devrez faire, c’est installer le plugin “Ruby and Rails”. Pour cela il suffit de cliquer sur le bouton “Installer des plug-ins” dans l’ong;et “Mon Netbeans” de la première fenêtre qui s’affiche. Vous obtiendrez la (longue) liste suivante ou vous pourrez choisir le plugin, comme montré ci-après:

Etape 8 : Creer un nouveau projet dans netbeans

Ouvrez le menu fichiers, et choisissez “Nouveau…”, puis selectionnez le dernioer choix dans la catégorie “Ruby”, comme suit:

Attention, vous devrez changer deux choses à partir du menu de configuration qui s’affiche ensuite:

  • Le chemin vers le projet RoR que nous avons créé à l’étape 5
  • la configuration Ruby afin d’utiliser la bonne version du stack bitnami qui est en /usr/local. Pour cela vous devez cliquer sur le bouton “Manage…” qui ouvre la fenetre suivante:

Comme illustré ci-dessus, choisissez la version la plus recente dont le chemin correspond au stack bitnami (ici 1.8.7-p334).

De retour dans la menu de configuration du projet, changez la plate-forme ruby pour celle qui est dans le stack bitnami:

Voila, il ne reste plus qu’à valider pour créer le projet, et c’est parti!

Etape 9 : Etudier le code généré

Etudiez le code initial généré par la commande rails dans les sous-répertoires app/, config/

Etape 10 : Initialiser Git

Git est un gestionnaire de version très populaire et surtout très efficace. Nous allons l’utiliser afin de pouvoir revenir en arrière en cas de fausse manip, ce qui évitera de tout recommencer depuis le début.

A chaque fois que vous créerez un nouveau projet RoR, pensez à y initialiser git de la façon suivante:

$ cd UneTable
$
git init
Initialized empty Git repository in /u/profs/dalle/TP_ROR/UneTable/.git/
$ git add .
$
git commit -m “Initial import”

La première commande initilise un dépôt local de gestion de version et la seconde indique quels fichiers il faut suivre (tous). LA troisième demande a git d’enregistrer ce qui a changé depuis la dernière fois.

Ensuite à chaque fois que vous faites des modifications, il faut demander à git d’enregistrer les modifications en réappelant successivement les commandes add et commit:

$ git add .
$
git commit -m “Initial import”

Pensez à la faire au minimum à chaque fois que vous finissez une question.

Dans ce cas, vous pourrez ajouter une etiquette qui permet de retrouver la version associée à une question:

$ git tag question10

A partir de maintenant, vous pourrez à tout moment revenir à cette version avec la commande

$ git checkout question10

Faisons par exemple l’experience suivante:

  • créez un fichier vide de nom toto avec la commande touch
  • demandez a git de prendre en compte ce fichier
  • demandez a git d’enregistrer le nouvel état
  • ajoutez un nouveau tag avec_toto
  • demandez a git de revenir a la version précédente (question10)
  • vérifiez que le fichier toto a bien disparu
  • demandez a git de revenir a la version avec toto
  • vérifiez que le fichier toto est bien revenu

Voilà, c’est tout bête et treeeès utile!

Etape 11 Generateur et console

Commençons à explorer un peu les générateurs. Essayez la commande suivante et étudiez son effet sur les sources de l’application.

$ ./script/generate model animal name:string
$
rake db:migrate

Comparez maintenant avec le resultat produit par cette autre commande:

$ ./script/generate scaffold personne name:string
$
rake db:migrate

Essayez maintenant de lancer l’application:

$ ./script/server

Et chargez la page suivante avec votre navigateur: http://localhost:3000/personnes/

Créez quelques enregistrements…

Ouvrez maintenant un second terminal, et lancez la commande suivante:

$ ./script/console

Vous voyez un prompt de l’interpreteur ruby s’afficher. Essayez les commandes ruby suivantes:

>> Personne.all
>> Personne.find(‘2’)

Etape 12 : Tutorial hobo

Ouvrez le document Tutorial et commencez le tutorial page 34 (les pages precedentes expliquent comment installer hobo et rails, etc.).

Page d’Accueil

Enseignements 2017-18

Enseignements Antérieurs

Recherche…

edit SideBar

Blix theme adapted by David Gilbert, powered by PmWiki