Solo per aiutare altri sviluppatori, perché non ci sono domande simili su SO.
div class=(is_active? ? 'active' : 'inactive')
div class=('active' if is_active?)
Solo per aiutare altri sviluppatori, perché non ci sono domande simili su SO.
div class=(is_active? ? 'active' : 'inactive')
div class=('active' if is_active?)
Risposte:
Guarda gli esempi di seguito:
div class=(is_active? ? 'active' : 'inactive')
div class=('active' if is_active?)
Lo stesso approccio può essere utilizzato per assegnare valori dinamici ad altri attributi.
div.councilor class=(councilor.retired? ? "retired" : "")
genera:div.councilor.retired
Se hai più condizioni, sto facendo qualcosa di simile
div class=(('foo ' if is_foo?) + ('bar' if is_bar?))
Anche se sento che è un difetto se is_bar? restituisce false e il risultato HTML generato
<div class="foo "></div>
(la macchia è il carattere vuoto dopo il foo
). Se qualcuno avesse una soluzione per questo sarebbe fantastico.
String#rstrip
in questo caso con 2 condizioni: div class=((('foo ' if is_foo?) + ('bar' if is_bar?)).rstrip)
. O div class=([('foo' if is_foo?), ('bar' if is_bar?)].compact.join(' '))
per diverse condizioni.