2 Stimmen

Bedingte Blöcke in Haml

In ruby you can do conditional block like so

block do |n|
  puts n
end if foo == bar

which would translate into erb as

<% block do |n| %>
  <%= n %>
<% end if foo == bar %>

is there a way to achieve this in haml other than wrapping the block in a condition?

7voto

Natalie Weizenbaum Punkte 5836
- block do |n|
  = n
- end if foo == bar

Haml lässt in diesem Fall end zu.

0voto

David J. Punkte 29769

Bitte setzen Sie das if vorne an -- das macht es leserlicher:

- if foo == bar
  - block do |n|
    = n

Und wenn dies häufig vorkommt, erwägen Sie das Schreiben eines benutzerdefinierten Haml-Helfers.

(Ich habe den GitHub Ruby Style-Guide weiter oben in einem Kommentar erwähnt. Wenn Sie Google nach 'ruby do end chaining' suchen, werden Sie viele Style-Guides sehen, die empfehlen, dieses Konstrukt zu verwenden.)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X