2013-06-19 4 views
5

Sto utilizzando l'helper ad es. imposta un titolo di pagina nella mia app per rails 3. Un frammento di erb sto ancora utilizzando in alcuni luoghi èCome evitare l'aggiunta di newline dalla valutazione del blocco rubino HAML

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

o scritta in HAML sarebbe

%title= yield(:title) 

Ora ho una impostazione di questo titolo modello HAML:

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

che risulta in

<title>My awesome title 
</title> 

Come posso evitare la nuova riga prima dello </title>? È definitivamente impostato su :title - l'aggiunta di +"X" inserirà lo X dietro alla nuova riga.

già provato

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

ma o una conduce ad un errore. La rimozione dello spazio bianco sembra non funzionare con la valutazione di ruby.

+0

Perché non basta fare: '% title = content_for (:? Titolo)? "# {yield (: title)}": "Default Title" ' – CDub

+0

Non si tratta di un titolo predefinito - ho anche quello. Il problema è che anche qui, 'yield (: title)' contiene la newline finale. –

+0

Interessante ... Due app che ho in esecuzione su Rails 3.2 usano entrambi lo snippet che ho postato sopra e funziona come tu intendi. – CDub

risposta

3

Nel modello di layout, fare:

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

Poi nei vostri modelli di contenuto, fare:

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

+0

Questo non funziona per me, ancora una nuova riga alla fine. L'ho risolto tagliando l'ultimo carattere del titolo: "# {yield (: title) .chop}" – Johny