在我之前的问题开发生成 HTML 的辅助函数之后:我应该使用嵌套的 content_tag()s 还是 partials?我现在确信重写我的一些更复杂的 HTML 生成辅助函数以使用模板而不是嵌套content_tag()
调用。
所以这是我原来的助手:
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
变量传递吗?还是有更常见的方法?
非常感谢。