Solo para ayudar a otros desarrolladores, porque no hay una pregunta similar sobre SO.
div class=(is_active? ? 'active' : 'inactive')
div class=('active' if is_active?)
ruby-on-rails
slim-lang
Sergey Alekseev
fuente
fuente
div.councilor class=(councilor.retired? ? "retired" : "")
genera:div.councilor.retired
Utilizo una matriz de clases y un elemento nulo si no hay necesidad de incluir una clase en la lista, luego una matriz compacta para eliminar elementos nulos y finalmente unirlos todos.
fuente
Si tiene varias condiciones, estoy haciendo algo como
Aunque siento que es una mancha si is_bar? devuelve falso y el HTML generado da como resultado
(la mancha es el carácter en blanco después de
foo
). Si alguien tuviera una solución para eso, sería genial.fuente
String#rstrip
en este caso con 2 condiciones:div class=((('foo ' if is_foo?) + ('bar' if is_bar?)).rstrip)
. Odiv class=([('foo' if is_foo?), ('bar' if is_bar?)].compact.join(' '))
por varias condiciones.