在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