这个问题肯定已经被问过了,但我没有找到。
我经常被迫在视图中编写这样的代码:
<div class="<%= c ? 'my_class' : 'my_other_class' %>">
<div class="<%= 'my class' if c %>">
<div<%= c ? 'class="my_class"' : 'id="my_div"' %>>
或者(更漂亮的方式,但可读性较差):
<% div_inner = capture do %>
...
<% end %>
<% if c %>
<div class="my_class"><%= div_inner %></div>
<% else %>
<div><%= div_inner %></div>
<% end %>
最后一个:
<% div_inner = capture do %>
...
<% end %>
<%= content_tag(:div, div_inner, (c ? { :class => "my_class" } : {})) %>
我发现所有这些解决方案在语法上都很脏。我相信有更好的方法。但是女巫?欢迎您亲身体验。