2013-06-19 2 views
5

Ich benutze die content_for Helfer, um z. Legen Sie einen Seitentitel in meiner App rails 3 fest. Ein Ausschnitt aus erb Ich bin immer noch an einigen Stellen verwendet, istWie vermeidet man, dass Zeilenumbrüche von HAML Ruby Block Auswertung hinzugefügt werden

<title><%= yield(:title) -></title> 

oder in HAML geschrieben würde

%title= yield(:title) 

Jetzt sein Ich habe eine HAML Vorlage setzen Sie diesen Titel:

- content_for :title do 
    My awesome title 
- content_for :something_else do 

was ergibt

<title>My awesome title 
</title> 

Wie kann ich den Zeilenumbruch vor </title> vermeiden? Es ist definitiv in :title eingestellt - Hinzufügen +"X" wird die X hinter dem Newline setzen.

Ich habe bereits versucht

-< content_for :title do 
-> content_for :title do 

aber entweder zu einem Fehler führt. Die Whitespace-Entfernung scheint bei der Ruby-Auswertung nicht zu funktionieren.

+0

Warum nicht nur: '% title = content_for (?: Titel) "# {yield (: title)}": "Standardtitel" ' – CDub

+0

Es geht nicht um einen Standardtitel - das habe ich auch. Das Problem ist, dass selbst in diesem Fall "yield (: title)" den abschließenden Zeilenumbruch enthält. –

+0

Interessant ... Zwei Apps, auf denen Rails 3.2 läuft, verwenden beide den Code, den ich oben gepostet habe, und es funktioniert so, wie Sie es vorhaben. – CDub

Antwort

3

In Ihrer Layout-Vorlage, tun:

%title= content_for?(:title) ? "#{yield(:title)}" : "Default Title"

Dann in Ihren Content-Vorlagen, tut:

= content_for(:title, "Welcome to my home page!")

+0

Das funktioniert bei mir nicht, am Ende noch neue Zeile. Ich habe es behoben, indem ich den letzten Charakter des Titels - # # yield (: title) .chop} – Johny

Verwandte Themen