2010-08-06 29 views
10

Tôi có một số đánh dấu tầm thường trông giống như sau:Làm thế nào để một bình luận trong một mẫu erb?

<li class="someclass"> 
    <=% t'model.attr' %> 
</li> 

Có cách nào không quan trọng để bình luận mà ra? Chỉ cần gói <!-- --> xung quanh khối sẽ vẫn để lại mã ruby ​​có sẵn cho mẫu. Điều này có nghĩa là tôi phải bình luận riêng biệt mã HTML và mã riêng của Ruby.

Cách tốt nhất để nhận xét tất cả ba dòng có số lượng đánh dấu ít nhất là gì?

Trả lời

11

=end là phiên bản Ruby của các nhận xét chặn.

Sử dụng chúng trong một mẫu ERB:

<% 
=begin 
%> 
<li class="someclass"> 
    <=% t'model.attr' %> 
</li> 
<% 
=end 
%> 
+0

Điều này có tác dụng và đó là cách tốt nhất mà tôi đã tìm thấy, nhưng điều đó không có nghĩa ngữ nghĩa ngoài việc "nhận xét điều này?" Tôi ước có cách xử phạt hơn, nếu có. –

+3

'= begin' và' = end' là phiên bản Ruby của các bình luận khối. Ngoài ra, bạn cũng có thể làm '<< - ASDF' và' ASDF' (thay thế ASDF bằng bất kỳ từ khóa nào bạn muốn). Đây là định dạng nhận xét heredoc. – Karl

0

Edited vì tôi nhận thấy ý định thực sự của câu hỏi của bạn:

<% 
=begin 
%> 
<li class="someclass"> 
    <%= t'model.attr' %> 
</li> 
<% 
=end 
%> 

Trong mọi highlighter cú pháp mà tôi đã sử dụng (chủ yếu là textmate), điều này cần phải ở ngay đầu của dòng, bạn không thể thụt lề nó để nó xuất hiện bình luận. Tôi không biết đó là một quy tắc hay việc triển khai đánh dấu kém.

3

Không làm việc:

<%# <li class="someclass"> 
    <=% t'model.attr' %> 
</li> %> 

Liệu công việc:

<% if false %> 
<li class="someclass"> 
    <=% t'model.attr' %> 
</li>  
<% end %> 
+0

Đến từ Python/etc cú pháp này là dễ sử dụng và sẽ dễ dàng hơn để đọc cho một người không Ruby. Một chiến thắng trong cuốn sách của tôi bất kỳ ngày nào. –

9

Bạn có thể bình luận khối ERB sử dụng #:

<!-- <li class="someclass"> --> 
    <%#= t'model.attr' %> 
<!-- </li> --> 

hoặc tránh HTML đen sử dụng phương pháp content_tag Rails :

<%#= content_tag :li, t'model.attr', :class=>:someclass %> 
Các vấn đề liên quan