Só para ajudar outros desenvolvedores, pois não há dúvida semelhante no SO.
div class=(is_active? ? 'active' : 'inactive')
div class=('active' if is_active?)
ruby-on-rails
slim-lang
Sergey Alekseev
fonte
fonte
div.councilor class=(councilor.retired? ? "retired" : "")
gera:div.councilor.retired
Eu uso o array de classes e o elemento nulo se não houver necessidade de incluir a classe na lista, então o array compacto para remover os elementos nulos e, finalmente, uni todos.
fonte
Se você tem várias condições que estou fazendo agora, algo como
Embora eu ache que é um defeito se is_bar? retorna falso e o HTML gerado resulta em
(o defeito é o caractere em branco após o
foo
). Se alguém tivesse uma solução para isso seria incrível.fonte
String#rstrip
, neste caso, com 2 condições:div class=((('foo ' if is_foo?) + ('bar' if is_bar?)).rstrip)
. Oudiv class=([('foo' if is_foo?), ('bar' if is_bar?)].compact.join(' '))
por várias condições.