Mar*_*cus 9 ruby ruby-on-rails erb ruby-on-rails-3
我想在Rails 3帮助器中用HTML包装一些内容,以便在我的视图中我可以这样做:
<%= rounded_box do-%>
<%= raw target.text %>
<% end -%>
Run Code Online (Sandbox Code Playgroud)
我有一个看起来像这样的帮助方法:
def rounded_box(&block)
str = "<div class='rounded_box'><div class='rounded_box_content'><div class='rounded_box_top'></div>
str << yield
str << "<div class='rounded_box_bottom'><div></div></div></div>"
raw str
end
Run Code Online (Sandbox Code Playgroud)
我现在拥有它的方式现在返回正确包装在HTML字符串中的内容,但不是在舍入round_box块中的任何erb之前(例如,在这种情况下,target.text呈现两次,一次包装,一次不包含).
有一个更好的方法吗?为简单起见,我想避免使用content_tag,但如果这是我能做到的唯一/最佳方式.
Jak*_*mpl 18
调用capture块而不是yield:
def rounded_box(&block)
str = "<div class='rounded_box'><div class='rounded_box_content'><div class='rounded_box_top'></div>"
str << capture(&block)
str << "<div class='rounded_box_bottom'><div></div></div></div>"
raw str
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4454 次 |
| 最近记录: |