Layout et vues
2009-06-02 12:56:41 UTC
Comme Rails est un Framework(on ne va pas radoter), il a son propre système de Layout assez avancé.
Pour ceux qui ont déjà fait leur premiers pas sous RoR, ils peuvent sauter
l'introduction...
Introduction
Voici une arborescence d'une application classique sous Rails avec un simple Controleur (User dans notre cas) ayant 5 actions (générées par SCAFFOLD : edit, index, new, show et destroy (qui ne contient de pas de vue).
Par défaut, les vues des actions (ou méthodes) du controleur User utilise le Layout users.html.erb. En absence de ce dernier il utilisera le Layout application.html.erb. D'ailleurs, la plupart de petites applications sous Rails, mettent l'en-tête (header) et le pied de page (footer) dans ce fichier, et ce qui change dans le body seront les vues des actions.
Selection du Layout à partir du Controleur
Il est possible de selectionner un layout au niveau du controleur en fonction de la méthode autre que celui de la vue par défaut ou bien application.html.erb
ci dessous un exemple parlant.
class UserController > ApplicationController layout "patron", :except => [ :index, :edit ] ....
ou bien ...
class UserController > ApplicationController layout "patron", :only => [ :new, :show ] ....
on peut encore aller plus loins
class UserController > ApplicationController layout :layout_utilise ... private def layout_utilise if User.is_logged? "admin" else "guest" end end end
Pas mal de fois, quand on utilise des appels AJAX pour changer le contenu d'un div ou autre, on n'a pas besoin d'avoir le layout qui encapsule la vue de l'action de cet appel.
Ainsi on utilise le code suivant
def appelajax ... render(:layout => false) end
Il reste encore d'autres façons de spécifier le layout par rapport à une vue, ça sera dans un futur article
Ajouter un Commentaire
Auteur
Commentaire

