Я пытаюсь отобразить результат блока content_for через помощник.
У меня есть шаблон (HAML) и макет следующим образом:
# app/views/books/show.html.haml
-content_for(:page_header) do
%h1= @book.title
# app/views/application.html.haml
...
=yield(:page_header)
...
Это работает абсолютно нормально.
Вместо этого я хочу сделать этот вызов помощником. Итак, я стремлюсь к следующему:
# 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
....
Я могу добиться частичного результата, вызвав помощника с помощью:
# app/views/application.html.haml
=page_header { yield(:page_header) }
# app/helpers/application.rb
def page_header(&block)
yield
end
но это кажется мне уродливым.
Любые идеи? Заранее спасибо.
ОТВЕТ: снова используйте content_for(:page_header) для отображения.