J'essaie de rendre le résultat d'un bloc content_for par le biais d'un helper.
J'ai un modèle (HAML) et une mise en page comme suit :
# app/views/books/show.html.haml
-content_for(:page_header) do
%h1= @book.title
# app/views/application.html.haml
...
=yield(:page_header)
...
Cela fonctionne très bien.
Ce que je veux faire, c'est faire cet appel dans une aide à la place. Je souhaite donc obtenir ce qui suit :
# 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
....
Je peux obtenir un résultat partiel en appelant l'aide avec :
# app/views/application.html.haml
=page_header { yield(:page_header) }
# app/helpers/application.rb
def page_header(&block)
yield
end
mais ça me semble moche.
Avez-vous des idées ? Merci d'avance.
RÉPONSE : Utilisez à nouveau content_for(:page_header) pour le rendre.