之后我先前的问题产生HTML开发辅助功能:我宁愿使用嵌套content_tag()S或谐音? 我现在相信重写我的一些更复杂的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
变量? 还是有一种较为常见的方式是什么?
非常感谢。