J’avais fait un récapitulatif pour Ruby. Je vais essayer d’en faire un pour Rails. Un truc basique, une vue d’ensemble pour débutant, et surtout pour me clarifier ce que j’ai appris.

Modèle MVC

Model

C’est la gestion et le traitement des données.

class Post < ActiveRecord::Base
end

View

C’est l’interface utilisateur. C’est des fichiers .erb. Il y a 1 dossier par Controller, ainsi qu’un dossier “layout” qui agit comme container pour les Views, i.e. pour la partie de la page qui ne change pas ou peu (le <head> notamment).

Controller

C’est la gestion des évènements.

Pour une action donnée, le Controller modifie le View (pour des notifications par exemple) et/ou le Model (si il y a des modif des données).

Commandes Rails

rails

La commande rails permet notamment de créer l’application.

rails blog

script/server

Pour lancer le serveur. A noter que sous Windows, il faut le précéder par “ruby”.

ruby script/server

script/generate

Pour générer un Model, une Migration, un Controller, un Helper, …

#Création d'un Controller avec 4 méthodes
ruby script/generate controller Comments index show new edit
 
#Création d'un Model avec 3 champs
ruby script/generate model Comment commenter:string body:text post:references

script/generate scaffold

Cas particulier de script/generate, c’est le Scaffold. Au lieu de générer tour à tour le Model, le Controller, les Views etc., le Scaffold génère tout ça (et bien plus encore).

ruby script/generate scaffold Album artist:string title:string year:integer rating:integer

Ca ressemble au script pour générer un Model. La différence c’est que le Controller et les Views sont générés aussi, ainsi que d’autres fichiers de migrations et de test.

rake

Après avoir généré les fichiers de migration, il faut les éxécuter. Quelques exemples :

#Exécuter une migration
rake db:migrate
#Annuler la dernière migration
rake db:rollback
#Tout remettre à zéro et lancer la dernière migration existante
rake db:reset

On peut aussi avoir accès à des statistiques.

rake stats

Views

Les templates .erb mélangent code HTML et code Rails. Le code Rails se trouvent entre <% et %>. On peut mettre :

  • <%= pour afficher la valeur d’une variable
  • <%h pour échapper les caractères spéciaux HTML
  • -%> pour éviter un saut à la ligne suivante.

Partial

Un partial est un template dans un template en gros. Le fichier doit débuter par un underscore “_”. Exemple : _form.erb

Base de données

La base de données (MySQL, SQLite ou PostgreSQL) se gère grâce à ActiveRecord. L’intéraction se fait par fichiers de migrations (générés avec le Model).
Le lien entre une table et un Model se fait par le nom : le Model a son initiale en majuscule et est au singulier, la table correspondante est en minuscules et est au pluriel.
Exemple : Model Album, table albums.

Routes

L’URL définit quel Controller on utilise, quelle Action on effectue et quel élément est affecté.

http://localhost:3000/posts/edit/2
Application/Controller/Action/Id