View et layout

bonjour !

il y a qqchose qui m’échappe dans le fonctionnement des vues et des
layouts.
si je veux utiliser le layout application.rhtml pour tous mes
controleurs, ca fait que je peux plus utiliser le layout individuel Ã
chaque controleur (puisque le layout application n’est pas utilisé si il
existe un layout propre au controleur).

du coup, si je veux avoir une presentation specifique a chaque
controleur, à l’intérieur d’une présentation propre à l’appli… bin je
peux pas (ou alors je recopie les meme choses dans les vues)…

bref comment avoir la hierarchie suivante :

  • affichage commun à l’appli
  • affichage commun au controleur
  • affichage commun à l’action

merci (-:

gUI

Bonjour,

Tu peux définir le layout à utiliser dans chaque contrôleur en utilisant
la
fonction layout :

Ex:
class CahierController < ApplicationController
layout “crayon”


end

Ici, le contrôleur Cahier utilisera le layout nommé “crayon.rhtml”
(placé
dans apps/views/layouts)

Steph.

2006/11/18, Guillaume B. [email protected]:

Je pense qu’il cherche plutot a donner un niveau hierarchique aux views

Avec un commun pour l’application
un commun pour tous les controlleurs
et un commun pour les actions

D’apres ce que j’ai compris les uns doivent être compris dans les autres.

A mon avis tu dois pouvoir t’en sortir a l’aide de render partial dans
un repertoire /shared/ par exemple.

Julien alexandre wrote:

Je pense qu’il cherche plutot a donner un niveau hierarchique aux views

oui, exactement.

tout simplement parce qu’il me semble que ce serait le fonctionnement le
plus logique : un layout général (typiquement entete/contenu/pied), un
layout par controleur (qui remplit le “contenu” du layout général), et
ensuite une vue par action (qui remplie un “contenu” du layout du
controleur).

un exemple simple serait d’avoir 3 ou 4 controleurs. certains
controleurs se font une fois connecté (login/passwd) et d’autre sont en
accès libre. je peux faire un layout “connecte” et un layout “public”,
et selon le controleur, je choisirai le bon. mais 80% de ces 2 layouts
sera identique (entetes, pied, menu…). je trouve ça dommage de devoir
répéter !

ensuite evidemment, les actions auront chacune leur propre vue, mais ça
c’est bien clair pour moi.

A mon avis tu dois pouvoir t’en sortir a l’aide de render partial dans
un repertoire /shared/ par exemple.

dans mon exemple ce serait de mettre l’entete, le menu et le pied chacun
dans un partial ? oui, pourquoi pas (surtout que je crois que niveau
cache c’est assez interressant).

gUI