Trucs et astuces pour débuter avec Ruby on Rails

Voici quelques trucs et astuces qui m’on permis de débuter plus facilement avec Rails. Ce billet est la traduction d’un article présent sur le wiki de Ruby on Rails.

Opérations de base nécéssaires pour faire une application Rails :

  • Pour créer une application il faut utiliser la commande ‘rails nomdemonsiteweb’
  • Ensuite, pour créer les controlleurs et les modèles : ‘ruby script/generate type nom’ où type est soit ‘controller’ ou ‘model’ et ‘nom’ est le nom de ce que vous créez.

A connaître sur :

  • Les table (schema) dans la base de données : Nom au pluriel, avec des underscores à la place d’espaces entre les mots, comme item_lignes.
  • Les modèles : Nom au singulier, première lettre de chaque mots en majuscule comme : ItemLigne.
    • La validation des données se fait ici.
    • Décrit aussi les relations entre les differentes tables :
      • Les modèles contiennent des commandes qui décrivent les relations qu’il existe entre les tables comme par exemple : belongs_to et has_many . Rails en deduira alors les connections.
      • belongs_to (appartient_a en français, un modèle Histoire appartient à un Auteur). Lorsqu’une table est liée à une autre table par belongs_to, vous pouvez utiliser les champs de cette table en ajoutant le nom de cette relation au nom de la classe, par exemple : si produit appartient à categorie, dans une vue qui est en relation avec produit, on peut obtenir la catégorie de cette façon : produit.categorie.nom.
      • has_many un Auteur a_beacoup d’Histoires.
    • Les noms au pluriel ont leur importance, faites attention (spécialement avec le mots en français) de mettre le bon nombre de s. Par exemple, la table souris sera automatiquement associée à la classe souri (sans le s) par rails. Par contre, avec des noms en anglais c’est plus simple, rails connait les bons pluriels à utiliser, il sait par exemple associer la classe child à la table children.
  • Les controlleurs (Nom au singulier, sans lettre capitale)
    • Centralise la logique, dit ce qu’il faut faire où il faut le faire. Un peu comme : « si le paramètre n’est pas valide, envoyer une erreur sur la validation »
    • Prépare les variables à afficher dans les vues.
      • Par exemple, la commande find(:all) prépare une variable contenant les données d’une table.
  • Les vues
    • Génere les pages à afficher. En ruby, ces pahes sont avec l’extension .rhtml
    • Utilise les variables préparées par le controleur et les affiches
      • Les variables accessibles depuis la vue doivent avoir un @ au début ()
    • <%= debug(@variableName) %> est très utile pour afficher des informations sur une variable, elle retourne <hr /> si la variable n’existe pas.
    • Le scaffold crée des liens edit, show, et delete dans une nouvelle vue. Pour remplacer le mots ‘show’ par autre chose, (Ici, on utilise le nom du produit et le h() permet de traiter les eventuels codes html présents dans ce nom) faites :
      <%=
      hname = h(product.name)
      link_to(hname, :action => 'show', :id => product)
      %>

Divers

  • Quelquefois il faut vider les sessions dans le répertoire /tmp/ si des erreurs 404 commence à se produire.

Read 3 comments

Laisser un commentaire