Nur um anderen Entwicklern zu helfen, denn es gibt keine ähnliche Frage zu SO.
div class=(is_active? ? 'active' : 'inactive')
div class=('active' if is_active?)
ruby-on-rails
slim-lang
Sergey Alekseev
quelle
quelle
div.councilor class=(councilor.retired? ? "retired" : "")
erzeugt:div.councilor.retired
Ich verwende ein Array von Klassen und ein Null-Element, wenn keine Klasse in die Liste aufgenommen werden muss, und ein kompaktes Array, um Null-Elemente zu entfernen und schließlich alle zusammenzufügen.
quelle
Wenn Sie mehrere Bedingungen haben, mache ich gerade so etwas wie
Obwohl ich es für einen Makel halte, wenn is_bar? Geben Sie false zurück und der generierte HTML-Code führt zu
(Der Fehler ist das leere Zeichen nach dem
foo
). Wenn jemand eine Lösung dafür hätte, wäre das großartig.quelle
String#rstrip
in diesem Fall mit 2 Bedingungen :div class=((('foo ' if is_foo?) + ('bar' if is_bar?)).rstrip)
. Oderdiv class=([('foo' if is_foo?), ('bar' if is_bar?)].compact.join(' '))
für mehrere Bedingungen.