私の以前の質問の後HTML を生成するヘルパー関数の開発: ネストされた content_tag()s またはパーシャルを使用する必要がありますか? content_tag()
入れ子になった呼び出しの代わりにテンプレートを使用するように、より複雑な HTML 生成ヘルパー関数のいくつかを書き直す必要があると確信しています。
だからここに私の元のヘルパーがあります:
def bootstrap_navlist(&block)
classes = ['nav', 'nav-list']
content_tag(:ul, class: classes.join(' ')) do
capture(self, &block)
end
end
そして、それが私が今パーシャルを使って思いついたものです:
def bootstrap_navlist(&block)
render partial: 'bootstrap/navlist'
end
# views/bootstrap/_navlist.html.erb
<ul class="<%= ['nav', 'nav-list'].join(' ') %>">
How do I output the block here??
</ul>
ブロックは次のようになりますが、好きな HTML にすることができます。
= bootstrap_navlist do |navlist|
= navlist.item 'Home', '#'
= navlist.sublist 'Meine Favoriten', '/favorites' do |sublist|
ご想像のとおり、ブロックをビューに出力する方法がわかりません。ヘルパーでキャプチャして、:local
変数として渡すだけですか? それとももっと一般的な方法がありますか?
どうもありがとう。