原来的 erb
<% if x == 0 %>
<tr id="x">
<% else %>
<tr id="y">
<% end %>
<td id="cell"></td>
</tr>
slim 如果改成如下,逻辑不对,当 x==0 时,tr#x 下面就不会有 td#cell
- if x == 0
tr#x
- else
tr#y
td#cell
或者改成如下,td#cell 在 tr#x和 tr#y下面都没有,而是在一个新的 tr 下面
- if x == 0
tr#x
- else
tr#y
td#cell
现在的问题就是td#cell进退两难。要么把 td#cell 重复加入 if 和 else 中,虽然正确,但如果 td#cell 是很多行 td 的话,这样做显然会使代码冗长。
- if x == 0
tr#x
td#cell
- else
tr#y
td#cell