How does one comment in an erb template?
Asked Answered
P

4

13

I have some trivial markup that looks like the following:

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

Is there a trivial way to comment that out? Just wrapping <!-- --> around the block will still leave the ruby code available to the template. This means I have to comment out the HTML and Ruby specific code separately.

What's the best way to comment out all three lines with the least amount of markup?

Promulgate answered 6/8, 2010 at 18:33 Comment(0)
P
12

=begin and =end are the Ruby version of block comments.

Using them in an erb template:

<%
=begin
%>
<li class="someclass">
  <=% t'model.attr' %>
</li>
<%
=end
%>
Phelps answered 6/8, 2010 at 18:38 Comment(2)
This does work, and it's the best way I've found, but doesn't it mean something semantically besides "comment this out?" I wish there were a more sanctioned way, if so.Viewer
=begin and =end are the Ruby version of block comments. Alternatively, you could also do <<-ASDF and ASDF (replacing ASDF with whatever keyword you want). This is the heredoc comment format.Soggy
A
12

You can comment ERB blocks using #:

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

or avoid the literal HTML using Rails content_tag method:

<%#= content_tag :li, t'model.attr', :class=>:someclass %>
Autotoxin answered 6/8, 2010 at 21:39 Comment(0)
E
4

Doesn't work:

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

Does work:

<% if false %>
<li class="someclass">
  <=% t'model.attr' %>
</li>    
<% end %>
Equal answered 6/8, 2010 at 18:41 Comment(1)
Coming over from Python/etc this syntax is easy to use and would be easier to read for a non Ruby person. A win in my book any day.Adinaadine
A
0

Edited because I noticed the true intention of your question:

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

In every syntax highlighter that I've used (mainly textmate), this needs to be at the very beginning of the line, you can't indent it for it to appear commented. I don't know if that's a rule or a poor implementation of the highlighting.

Audreyaudri answered 6/8, 2010 at 18:39 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.