这个问题肯定已经被问过了,但是我没有找到它。
我经常被迫在视图中编写像这样的代码:
<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" } : {})) %>
我发现所有这些解决方案在语法上都有点不太规范。我相信有更好的方法,但是具体是什么呢?欢迎分享你自己的经验。
style="display:none"
。内联样式通常是一个不好的想法。 - James Donnellydisplay:none
,那么使用类会更合适。ID是唯一的,而类不是。使用<div<%= c ? 'class="my_class"' : 'class="hidden"' %>>
并搭配.hidden { display:none; }
的方式比使用内联样式更好。 - James Donnelly