Подтвердить что ты не робот

Условный haml - если другое гнездование

То, что я хочу, - это то, что есть в "if" и whats in "else", чтобы включить # main-block.

- if @transparency
  #content-inner{:style => "background: url(../../../images/illustrations/" + @transparency + ") no-repeat 88% 50%"}
- else 
  #content-inner
     #main-block

Что происходит в настоящее время, если @transparency определено, #main-block не вложен внутри #content-inner.

4b9b3361

Ответ 1

Вы можете использовать тернарный оператор для условного применения атрибута style:

#content-inner{ :style => @transparency ? "background: url(../../../images/illustrations/" + @transparency + ") no-repeat 88% 50%" : '' }
  #main-block

Для более сложной компоновки, например, манипуляции с несколькими атрибутами хэша, лучше всего использовать вспомогательный метод или перенести общий контент на частичный.