2011-01-02 10 views
3

Mit Liquid können Sie Layouts verschachteln. Zum Beispiel my site'sdefault layout baut von der base layout ab.Verschachtelte ERB Template-Layouts wie Liquid?

Ist dies mit ERB möglich? Wenn das so ist, wie?

Ich frage, weil ich eine GitHub Pages Website Sinatra migrieren, so dass ich Formulare verarbeiten kann nativ (nicht mit Wufoo oder Google Forms).

+0

Meinst du, wie machst du das in ** HAML **? Seit Sinatra hat Unterstützung für Liquid. –

+0

@phoffer Ja, obwohl ich jetzt frage, wie man es in ERB macht (aber HAML wäre auch cool), habe ich die Frage bearbeitet, um mehr Sinn zu machen. – ma11hew28

Antwort

2

try this:

eine Datei namens layout.haml machen (oder erb oder was auch immer Ihre Vorlagen sind in), und in den Ansichten Ordner. dies ist Ihre Website-Layout, und es könnte wie folgt aussehen (ich verwende haml):

%html 
    %head 
    %link(rel="stylesheet" type="text/css" href="style.css") 
    %body 
    %div.outer 
     %div.inner 
     = yield 

die magische Teil der =yield dies ist, wo Sinatra machen wird, was auch immer Vorlage, die Sie in Ihre Route aufrufen. Das = weist Ihre Vorlage an, Ruby-Code zu erwarten.

zum Beispiel, wenn Sie Ihre Route ist

get '/' do 
    haml :index 
end 

dann Ihre Vorlage bei /views/index.haml eingefügt werden. Sie können auch ein benutzerdefiniertes Layout verwenden, wenn Sie Ihrer Vorlage mitteilen, dass sie die unter /views/layout.haml überschreibt.

hoffe das hilft.

+1

Ja, dies zeigt, wie eine Layoutdatei verwendet wird. Aber wie verschachteln Sie zwei oder mehr Layoutdateien? Bitte lesen Sie meine Frage erneut, nachdem ich sie überarbeitet habe. – ma11hew28