2011-11-17 6 views
12

Próbuję gniazdo tohaml gniazdowania tagi

%h1 Admin Menu 
    %small logged in as: #{session[:username]} 

Aby uzyskać coś takiego

<h1>Admin Menu <small>logged in as: something</small></h1> 

ale jedynym sposobem mogę zmusić go do wyświetlania bez wypalania błąd jest umieszczenie ich w na tym samym poziomie, powiedzmy

%h1 Admin Menu 
    %small logged in as: #{session[:username]} 

które wyjścia:

<h1>Admin Menu</h1> 
<small>logged in as: something</small> 

To jest coś głupiego, ale nie mam pojęcia, dlaczego to nie zadziała?

Odpowiedz

26

Haml pozwala tylko na wstawianie w linii, jeśli wszystko, co będzie zagnieżdżone, jest wbudowane. Więc można to zrobić:

%h1 Admin Menu 

lub to:

%h1 
    Admin Menu 
    %small logged in as: #{session[:username]} 

ale nie w ten sposób:

%h1 Admin Menu 
    %small logged in as: #{session[:username]} 

Pierwsza forma naprawdę powinny być traktowane jako wygodny skrót. istnieje tak można zrobić coś takiego:

%li 
    One 
%li 
    Two 
%li 
    Three 

i po prostu powiedzieć:

%li One 
%li Two 
%li Three 
+0

Dziękuję Matt, miałeś rację z pieniędzmi :) – leopic

7

Nie próbowałem, ale czy nie będzie to dla ciebie następująca praca?

%h1 
    Admin Menu 
    %small logged in as: #{session[:username]} 
+0

Dziękuję Swanand, to działało :) – leopic

1

Druga sztuczka jest to.

%h1 
    Admin Menu 
    %small 
    logged in as: 
    =session[:username] 

ponieważ ostatnie 2 linie będą renderowane wewnątrz „mały” -tag

0

Albo można po prostu użyć prostego css rade, jak:

%h1 
    Admin Menu 
    .small{ style: 'font-size: smaller;' } 
     logged in as: 
     = session[:username] 

ten sposób można określić, inne atrybuty lub określony rozmiar czcionki.

+0

W tym przypadku tag był tylko przykładem, ale chciałabym również zagnieżdżać inne tagi, dziękuję za wskazówka. – leopic