erb模板中的一条评论如何?
Posted
技术标签:
【中文标题】erb模板中的一条评论如何?【英文标题】:How does one comment in an erb template? 【发布时间】:2011-03-26 11:53:50 【问题描述】:我有一些琐碎的标记,如下所示:
<li class="someclass">
<=% t'model.attr' %>
</li>
有没有一种简单的方法来评论它?只需将 <!-- -->
包裹在块周围,模板仍然可以使用 ruby 代码。这意味着我必须分别注释掉 html 和 Ruby 特定的代码。
用最少的标记注释掉所有三行的最佳方法是什么?
【问题讨论】:
【参考方案1】:=begin
和 =end
是块 cmets 的 Ruby 版本。
在 erb 模板中使用它们:
<%
=begin
%>
<li class="someclass">
<=% t'model.attr' %>
</li>
<%
=end
%>
【讨论】:
这确实有效,这是我找到的最好的方法,但除了“注释掉这个”之外,这不是语义上的意思吗?如果是这样,我希望有一种更受认可的方式。=begin
和 =end
是块 cmets 的 Ruby 版本。或者,您也可以使用<<-ASDF
和ASDF
(用您想要的任何关键字替换 ASDF)。这是heredoc注释格式。【参考方案2】:
您可以使用 #
评论 ERB 块:
<!-- <li class="someclass"> -->
<%#= t'model.attr' %>
<!-- </li> -->
或使用 Rails content_tag
方法避免文字 HTML:
<%#= content_tag :li, t'model.attr', :class=>:someclass %>
【讨论】:
【参考方案3】:没用:
<%# <li class="someclass">
<=% t'model.attr' %>
</li> %>
有效:
<% if false %>
<li class="someclass">
<=% t'model.attr' %>
</li>
<% end %>
【讨论】:
从 Python/etc 过来的这个语法很容易使用,对于非 Ruby 的人来说更容易阅读。任何一天都在我的书中获胜。【参考方案4】:编辑是因为我注意到您问题的真正意图:
<%
=begin
%>
<li class="someclass">
<%= t'model.attr' %>
</li>
<%
=end
%>
在我使用过的每个语法荧光笔(主要是 textmate)中,这需要位于行首,您不能缩进它以使其显示为注释。我不知道这是规则还是突出显示的糟糕实现。
【讨论】:
以上是关于erb模板中的一条评论如何?的主要内容,如果未能解决你的问题,请参考以下文章
在 Rails 3 中处理 JS/ERB 模板中的 JSON