Haml + if

Mam mały problem z hamlem.
Chodzi mianowicie o tego if’a :

%ul#detailslist %li %strong Język: =@book.language -if @book.publisher %li %strong Wydawca: =@book.publisher
Bez if’a w kodzie, li jest poprawnie zagnieżdzone. Gdy dodaję warunek, tak w kodzie powyżej, li wylatuje poza ul.
W “specyfikacji” hamla o blokach jest tylko tyle że nie trzeba ich zamykać.

[quote=Maslav]Mam mały problem z hamlem.
Chodzi mianowicie o tego if’a :

%ul#detailslist %li %strong Język: =@book.language -if @book.publisher %li %strong Wydawca: =@book.publisher
Bez if’a w kodzie, li jest poprawnie zagnieżdzone. Gdy dodaję warunek, tak w kodzie powyżej, li wylatuje poza ul.
W “specyfikacji” hamla o blokach jest tylko tyle że nie trzeba ich zamykać.[/quote]
To proste. Weź cały blok od if’a w dół przesuń o 2 spacje na prawo.

Faktycznie, dzięki!
Trzeba się z tymi spacjami pilnować.

Witam,
Co zrobić jeżeli chcę wstawić warunek w takiej sytuacji, na poziomie .tr? Dokładnie chodzi o dynamiczne przypisanie blokowi tr identyfikatora:

.table .tr .td (...)
Przepisywanie kodu od .td w dół dwa razy, nie wchodzi w grę. Jeżeli wstawię warunek jak poniżej, to element .td wypada z .tr, a wiadomo, że muszę go przesunąć, żeby nie był blokiem warunkowym:

.table -if warunek .tr#abc -else .tr .td (...)

czesc

mozna napisac tak:

.table .tr{:id => "#{'abc' if warunek}"} .td (...)
jezeli warunek zostanie spelniony, wygenerujesz:

[code]

(...)
[/code] ale czy o to ci chodzi? o generowanie divów? bo jezeli chodzi ci o tablice, tr i td to nalezy napisac:

%table %tr{:id => "#{'abc' if warunek}"} %td (...)
dostaniesz:

[code]

(...)
[/code] pozdrawiam Sławek

Wielkie dzięki Sławek!
Ps.
Używam tabelek na div’ach w css.

Pozdrawiam :wink: