我想在块助手中定义一些助手方法,但将它们保留在块的范围内,以便我可以拥有合理的方法名称并且看起来更干净。
假设我想使用助手执行以下操作(一个非常基本的示例):
<%= foo_box do |b| %>
<%= b.title( 'Foo Bar' ) %>
Lorem Ipsum...
<% end %>
生产类似的东西
<div class="foo_box">
<h2>Foo Bar</h2>
Lorem Ipsum...
</div>
这样我也可以有一个bar_box
块助手,它也可以有一个title
输出完全不同的东西的方法。
目前我将它们实现为不同的方法,例如foo_box
和foo_box_title
,foo_box
像这样处理块:
def foo_box(&block)
content_tag(:div, capture(&block), :class => 'foo_box')
end