1 application, plusieurs layouts?

Bonjour,

J’ai une application Rails dont je ne souhaite faire tourner qu’une
seule instance mais qui doit utiliser des layouts différents en
fonction du client qui l’utilise.

J’ai essayé de définir des routes comme ceci :
/client1/:controller/…
/client2/:controller/…

/clientn/:controller/…

mais quand rails construit une route il va prendre la route /
clientn/:controller pour générer la route,
c’est à dire la même route pour tous les clients.

Il est probable que ce ne soit pas la bonne manière de faire. C’est
pourquoi je demande l’avis
de personnes plus expérimentées pour savoir comment dois-je m’y
prendre.

J’ai fait ça dans un contexte légèrement différent, pour rendre facile
le
choix des thèmes.

  1. Définir dans app/helpers/application_helper.rb un méthode qui renvoie
    le
    thème (e.g. current_theme) en fonction de current_user.

  2. app/views/layouts/application.rhtml ne contient que qqchose comme ça
    :
    <%= render :partial current_theme %>

  3. les vrais layout sont dans de partials qu’on organise par théme dans
    des
    sous arborescences ou en préfixant les rhtml

Hope it helps :slight_smile:

Merci pour cette idée, c’est en effet plus simple.

On 11 déc, 17:36, “philippe lachaise” [email protected]