7
私は、ヘルパーを介してcontent_forブロックの結果をレンダリングしようとしています。ヘルパーの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)を使用してレンダリングしてください。
お返事ありがとうございます。これは、コンテンツをレンダリングするために再度content_forを使用する正しい解決策に向かって私に指摘しています。 – iHiD