Hyperstack добавляет динамический класс к ручным именам классов

Мне нужно добавить динамический класс для некоторых обычных классов при обновлении синтаксиса для Hyperstack:

div.upload_header.text_left(class: ('uploaded' if 
FileUploads.complete?)) do

Должно стать что-то вроде этого:

DIV(class: 'upload-header text-left (dynamic 'uploaded' should go 
here)') do

Я просто не могу понять, как / если регулярные и динамические классы могут быть объявлены вместе.

1 ответ

Решение

Строковая интерполяция может быть выполнена условно:

DIV(class: "upload-header text-left #{'uploaded' if FileUploads.complete?}")

Параметр class также может принимать массив:

def upload_header_classes
  ['upload-header', 'text-left'].tap do |classes|
    classes << 'uploaded' if FileUploads.complete?
  end
end

DIV(class: upload_header_classes)

Я уверен, что есть много других способов сделать это, это рубин!

Другие вопросы по тегам