в рубине вы можете сделать условный блок вот так
block do |n|
puts n
end if foo == bar
что переводится в erb как
<% block do |n| %>
<%= n %>
<% end if foo == bar %>
есть ли способ добиться этого в haml, кроме как обернуть блок в условие?
do
...end.if
читабелен (это не так), я съеживаюсь, увидев, что это сделано в Haml. Я дам несколько альтернатив в ответах ниже. - person David J.   schedule 17.06.2012