2011-07-21 8 views
7

Estoy tratando de mostrar el resultado de un bloque content_for a través de un helper.Renderizar un bloque content_for en un helper

que tienen una plantilla (HAML) y una disposición de la siguiente manera:

# app/views/books/show.html.haml 
-content_for(:page_header) do 
    %h1= @book.title 

# app/views/application.html.haml 
... 
=yield(:page_header) 
... 

que funciona absolutamente bien.

Lo que quiero hacer es hacer esa llamada en una ayuda en su lugar. Así que estoy apuntando para lo siguiente:

# app/views/books/show.html.haml 
-content_for(:page_header) do 
    %h1= @book.title 

# app/views/application.html.haml 
.... 
=page_header(block) 
.... 

# app/helpers/application.rb 
.... 
def page_header(&block) 

    # Some view logic 
    # ... 

    =yield(:page_header) 
end 
.... 

puedo lograr un resultado parcial llamando al ayudante con:

# app/views/application.html.haml 
=page_header { yield(:page_header) } 

# app/helpers/application.rb 
def page_header(&block) 
    yield 
end 

pero que se siente feo para mí.

¿Alguna idea? Gracias por adelantado.

RESPUESTA: Usa content_for (: page_header) nuevamente para renderizarlo.

Respuesta

Cuestiones relacionadas