在ERB中写这个的最可读和/或简洁的方式是什么?编写我自己的方法是不可取的,因为我想为我的公司中的其他人传播更清洁的解决方案。Rails中的条件标签封装/ ERB
<% @items.each do |item| %>
<% if item.isolated? %>
<div class="isolated">
<% end %>
<%= item.name.pluralize %> <%# you can't win with indentation %>
<% if item.isolated? %>
</div>
<% end %>
<% end %>
== ==更新
我用半乳糖的回答更宽泛的版本是标签无关。
def conditional_wrapper(condition=true, options={}, &block)
options[:tag] ||= :div
if condition == true
concat content_tag(options[:tag], capture(&block), options.delete_if{|k,v| k == :tag})
else
concat capture(&block)
end
end
==用法
<% @items.each do |item| %>
<% conditional_wrapper(item.isolated?, :class => "isolated") do %>
<%= item.name.pluralize %>
<% end %>
<% end %>
以为我想避免这一点。这最终是我选择的方向。 – 2011-04-27 21:25:57