【发布时间】:2011-01-05 14:22:24
【问题描述】:
我想在块助手中定义一些助手方法,但将它们保留在块的范围内,以便我可以有合理的方法名称并且看起来更干净。
假设我想使用帮助器执行以下操作(一个非常基本的示例):
<%= 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
【问题讨论】:
标签: ruby-on-rails ruby block helpers