Richtiges Rendern mehrerer Layouts pro Controller in Rails

8

Ich habe in meinem Users_controller definiert:

layout "intro", only: [:new, :create]

So sieht mein Layout aus: Intro.html.haml

%Vor%

Wenn ich eine Seite rendere, die intro als Layout aufruft, wird sie in meine application.html.haml -Datei geschachtelt, was nicht gut ist.

Gibt es eine Möglichkeit, diese unerwünschte Verschachtelung von Layouts zu vermeiden?

Vielen Dank im Voraus!

    
pruett 15.04.2012, 20:46
quelle

1 Antwort

41

Das Problem war in meinem Controller. Ich habe mehrere Layout-Instanzen wie folgt deklariert:

%Vor%

Tun Sie das nicht! Die zweite Deklaration wird Vorrang haben und Sie werden nicht den gewünschten Effekt bekommen.

Wenn Ihre Layouts lediglich aktionsspezifisch sind, deklarieren Sie sie einfach in der Aktion wie folgt:

%Vor%

Oder, wenn es etwas komplizierter ist, können Sie ein Symbol verwenden, um die Verarbeitung zur Laufzeit auf eine Methode zu verschieben:

%Vor%     
pruett 16.04.2012, 16:12
quelle