erb模板中的一条评论如何?

Posted

技术标签:

【中文标题】erb模板中的一条评论如何?【英文标题】:How does one comment in an erb template? 【发布时间】:2011-03-26 11:53:50 【问题描述】:

我有一些琐碎的标记,如下所示:

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

有没有一种简单的方法来评论它?只需将 &lt;!-- --&gt; 包裹在块周围,模板仍然可以使用 ruby​​ 代码。这意味着我必须分别注释掉 html 和 Ruby 特定的代码。

用最少的标记注释掉所有三行的最佳方法是什么?

【问题讨论】:

【参考方案1】:

=begin=end 是块 cmets 的 Ruby 版本。

在 erb 模板中使用它们:

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

【讨论】:

这确实有效,这是我找到的最好的方法,但除了“注释掉这个”之外,这不是语义上的意思吗?如果是这样,我希望有一种更受认可的方式。 =begin=end 是块 cmets 的 Ruby 版本。或者,您也可以使用&lt;&lt;-ASDFASDF(用您想要的任何关键字替换 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模板中的一条评论如何?的主要内容,如果未能解决你的问题,请参考以下文章

技术分享手把手教你如何完成Ruby ERB模板注入

当用户单击erb中的缩略图时如何显示全尺寸图像?

在 Rails 3 中处理 JS/ERB 模板中的 JSON

html.erb 模板中的 v-model 渲染 function () [native code]

从数据库渲染 erb 的最佳方法?

如何在 rails (4.1.5) 中创建固定装置(对于 Devise 用户)作为 yml.erb?