2011-07-21 13 views
7

Próbuję zrenderować wynik bloku content_for za pomocą helpera.Renderowanie obiektu content_for blokującego pomocnika

Mam szablonu (haml) oraz układ następująco:

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

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

który działa całkowicie w porządku.

Co chcę zrobić, to zamiast tego wywołać pomocnika. Więc jestem mające za:

# 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 
.... 

mogę osiągnąć częściowy rezultat poprzez wywołanie pomocnika z:

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

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

ale że czuje brzydki do mnie.

Wszelkie pomysły? Z góry dziękuję.

ODPOWIEDŹ: Ponownie użyj content_for (: page_header), aby ją wyrenderować.

Odpowiedz

Powiązane problemy