2011-11-17 28 views
12

Tôi đang cố gắng để làm tổ nàyHAML làm tổ tags

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

Để có được một cái gì đó như thế này

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

Nhưng cách duy nhất tôi có thể lấy nó để hiển thị mà không cần bắn một lỗi được đặt chúng ở cùng cấp, nói

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

những kết quả đầu ra:

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

Đó là điều gì đó ngớ ngẩn nhưng tôi không biết tại sao điều này sẽ không hoạt động?

Trả lời

26

Chỉ cho phép lồng nội tuyến nếu mọi thứ được lồng vào nội tuyến. Vì vậy, bạn có thể làm điều này:

%h1 Admin Menu 

hay này:

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

nhưng không này:

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

Các hình thức đầu tiên thực sự nên được coi là một từ viết tắt thuận tiện. Nó tồn tại, do đó bạn có thể mất một cái gì đó như thế này:

%li 
    One 
%li 
    Two 
%li 
    Three 

và chỉ nói:

%li One 
%li Two 
%li Three 
+0

Cảm ơn bạn Matt, bạn đã đúng về tiền :) – leopic

7

Tôi chưa thử, nhưng sẽ không có tác dụng sau cho bạn?

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

Cảm ơn Swanand, đã hoạt động :) – leopic

1

Bí quyết khác là thế này.

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

vì 2 dòng cuối cùng sẽ được trả lại bên trong "nhỏ" -tag

0

Hoặc bạn chỉ có thể sử dụng css đơn giản để làm các trick, như:

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

cách này bạn có thể chỉ định các thuộc tính khác hoặc kích thước cụ thể của phông chữ.

+0

Trong trường hợp này, thẻ chỉ là một ví dụ nhưng tôi cũng muốn lồng ghép các thẻ khác, cảm ơn bạn vì tip tho. – leopic