Просто чтобы помочь другим разработчикам, потому что на SO нет подобного вопроса.
div class=(is_active? ? 'active' : 'inactive')
div class=('active' if is_active?)
ruby-on-rails
slim-lang
Сергей Алексеев
источник
источник
div.councilor class=(councilor.retired? ? "retired" : "")
генерирует:div.councilor.retired
Я использую массив классов и элемент nil, если нет необходимости включать класс в список, затем компактный массив, чтобы удалить элементы nil и, наконец, объединить все вместе.
источник
Если у вас несколько условий, я сейчас делаю что-то вроде
Хотя я считаю, что is_bar? вернуть false, и сгенерированный HTML приведет к
(недостаток - это пустой символ после
foo
). Если бы у кого-то было решение для этого, было бы здорово.источник
String#rstrip
в этом случае с 2 -х условий:div class=((('foo ' if is_foo?) + ('bar' if is_bar?)).rstrip)
. Илиdiv class=([('foo' if is_foo?), ('bar' if is_bar?)].compact.join(' '))
по нескольким условиям.