Tylko po to, aby pomóc innym programistom, ponieważ nie ma podobnego pytania w SO.
div class=(is_active? ? 'active' : 'inactive')
div class=('active' if is_active?)
ruby-on-rails
slim-lang
Sergey Alekseev
źródło
źródło
div.councilor class=(councilor.retired? ? "retired" : "")
generuje:div.councilor.retired
Używam tablicy klas i elementu nil, jeśli nie ma potrzeby umieszczania klasy na liście, a następnie tablicy kompaktowej, aby usunąć elementy zerowe i ostatecznie połączyć wszystkie razem.
źródło
Jeśli masz wiele warunków, robię teraz coś takiego
Chociaż uważam, że to skaza, jeśli is_bar? zwraca false, a wygenerowany kod HTML powoduje
(skaza to pusty znak po
foo
). Gdyby ktoś miał na to rozwiązanie, byłoby super.źródło
String#rstrip
w tym przypadku z 2 warunki:div class=((('foo ' if is_foo?) + ('bar' if is_bar?)).rstrip)
. Lubdiv class=([('foo' if is_foo?), ('bar' if is_bar?)].compact.join(' '))
pod kilkoma warunkami.