Juste pour aider d'autres développeurs, car il n'y a pas de question similaire sur SO.
div class=(is_active? ? 'active' : 'inactive')
div class=('active' if is_active?)
ruby-on-rails
slim-lang
Sergey Alekseev
la source
la source
div.councilor class=(councilor.retired? ? "retired" : "")
génère:div.councilor.retired
J'utilise un tableau de classes et un élément nil s'il n'est pas nécessaire d'inclure une classe dans la liste, puis un tableau compact pour supprimer les éléments nil et enfin les assembler.
la source
Si vous avez plusieurs conditions, je suis en train de faire quelque chose comme
Bien que je pense que c'est une tache si is_bar? renvoie false et le HTML généré entraîne
(le défaut est le caractère vide après le
foo
). Si quelqu'un avait une solution pour cela, ce serait génial.la source
String#rstrip
dans ce cas avec 2 conditions:div class=((('foo ' if is_foo?) + ('bar' if is_bar?)).rstrip)
. Oudiv class=([('foo' if is_foo?), ('bar' if is_bar?)].compact.join(' '))
pour plusieurs conditions.