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ć.
Dzięki za odpowiedź. To wskazało mi prawidłowe rozwiązanie, które polega na użyciu content_for ponownie do renderowania treści. – iHiD