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/serverscript/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<%hpour é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
Flux RSS