How does one comment in an erb template?

对着背影说爱祢 提交于 2019-12-23 07:21:27

问题


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?


回答1:


=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
%>



回答2:


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 %>



回答3:


Doesn't work:

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

Does work:

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



回答4:


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.



来源:https://stackoverflow.com/questions/3426671/how-does-one-comment-in-an-erb-template

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!