2010-12-03 5 views
2

In Schienen, bin ich verwendet, um die zu Site Mesh zu verwenden. (http://guides.rubyonrails.org/layouts_and_rendering.html#using-content_for)Gibt es eine Möglichkeit, eine Schiene "yield/content_for" in GRAILS zu machen?

Ich kann nicht in Grails Dokumentation einen Weg finden, dies zu tun ... Könnten Sie mir helfen?

EDIT

Hier ist die Situation:

Ich habe ein Layout dies enthält:

<body> 
    <div id="wrapper"> 
     <div id="container"> 
      <div id="header"> 
       <g:render template="/layouts/header"/> 
      </div> 
      <g:render template="/layouts/menu"/> 
      <div id="container-homepage"> 
       <g:layoutBody/> 
       <div id="subfooter"> 
        <div id="content"> 
         <div id="left"> 
          <div id="logo_sub_header"></div> 
         </div> 
         <div id="right"></div> 
        </div> 
       </div> 

      </div> 
     </div> 
    </div> 
</body> 

Und ich möchte in die Lage, einen HTML-Schnipsel (Suchwerkzeug Leiste hinzufügen für Beispiel) Juste über dem container-homepage div. Ein Partial könnte den Trick machen .. wenn diese Suchleiste immer gleich wäre. Die Sache hier ist, dass diese Suchleiste von der Seite abhängt, die ich besuche.

Ich könnte auch nur die Position des Containers-Startseite Div ändern, um es direkt in die Ansicht, und nicht das Layout, aber dann muss ich dazu in allen Ansichten, und das ist nicht DRY.

Irgendwelche Ideen? Grüße,

+1

Ich denke, Inhalt Blöcke würden für Sie arbeiten. Siehe meine Antwort unten. Fabrizio –

Antwort

2

Ich glaube, Sie haben zwei Möglichkeiten:

die g: Render-Tag ist die beste Option, wenn der Inhaltsblock nicht auf einer benutzerdefinierten Seite basierend ändern.

Wie dem auch sei http://grails.org/Content+Blocks

weil g dieser Verbindung einen Blick ah nehme ich würde: pageProperty es die eleganteste und flexible Lösung.

+0

danke Lösung 2 ist was ich gesucht habe! – Pasta

0

Vielleicht ist das g:render Tag, was Sie suchen? Damit können Sie eine Vorlage überall in Ihrer Ansicht (auch in anderen Vorlagen) rendern. Sie können auch ein Modell für die zu verwendende Vorlage übergeben.

Beachten Sie den Abschnitt unten auf dieser Seite zu Namenskonventionen - Vorlagenansicht gsp filenames sollte mit einem Unterstrich beginnen (obwohl dieser Unterstrich im render-Tag nicht angegeben ist). Es gibt mos einen Weg, dies zu überschreiben, aber die Dinge funktionieren automatisch, wenn Sie den Unterstrich dort setzen.

+0

Ich habe meine Frage bearbeitet, um einen Teil zu erklären, würde den Trick nicht tun. – Pasta

Verwandte Themen