Hier on a installé Rails, créé une application, configuré et créé la base de données. Maintenant on va créer notre première page, ou devrais-je notre premier View.
Aperçu du modèle MVC
Rails utilise le modèle MVC : Model-View-Controller. Je vous conseille de lire l’article Wikipedia parce que le MVC est un concept plus général dont je ne parlerai pas ici. Ce qu’il faut savoir en gros :
- Model : c’est la gestion et le traitement des données, généralement avec une base de données
- View : c’est l’interface utilisateur, la partie visible de l’extérieur. Pour nous ça sera les pages HTML que l’internaute verra en allant sur le site.
- Controller : c’est la gestion des évènements. Par exemple, pour une action donnée, le Controller modifiera le View (pour des notifications par exemple) et/ou le Model (si il y a des modif des données)
Premier Controller et premier View
Pour afficher quelque chose, il faut au minimum un Controller et un View. Une seule commande est nécessaire pour ça :
script/generate controller home indexCa va créer plusieurs fichiers dont le fichier index.html.erb dans le dossier app/views/home.
Fichiers .erb
Les fichiers .erb sont des fichiers de template Ruby. On va pouvoir mélanger du HTML avec du code Ruby qui sera écrit entre des <% %>. Pour l’instant, on ne va mettre que du HTML. Ouvrez le fichier et mettez :
<h1>Hello, Rails! Voici 29minparjour.</h1>
Puis lancez votre serveur en mettant dans la console script/server&. N’oubliez pas le &, c’est une astuce qu’on m’a apprise pour laisser le serveur tourner et voir tout ce qu’il fait. Puis allez sur http://localhost:3000/home/index et vous verrez votre page!
D’ailleurs, allez aussi sur http://localhost:3000 pour voir la page d’accueil par défaut d’une appli Rails.
Flux RSS
Ce qui est rigolo avec le pattern MVC, c’est que tout le monde est d’accord pour dire qu’il faut l’utiliser (”separation of concern” toussa), mais personne n’est vraiment d’accord sur sa définition…
En vérité le “Model” n’est pas vraiment ce qui gère les données (ça c’est les DAO) mais plutôt les classes qui représentent tes données.
Exemple, sur un blog tu va avoir une classe “User”, une classe “Post”, une classe “Comment” etc. ce sont ces classes les Modèles.
La manière dont tu accède ou fais persister tes données est complètement détachée du pattern MVC.
Si t’es un goret tu fais tout direct dans les controllers, mais c’est vraiment laid.
En principe tu créer d’autres classes qui gèrent l’accès aux données, et auxquelles les controllers font appel. (archi n-tiers).
HF with Rails btw
Faudrait que tu commentes plus souvent, ça m’aiderait je pense!