【问题标题】:How to comment lines in rails html.erb files? [duplicate]如何评论rails html.erb文件中的行? [复制]
【发布时间】:2011-04-23 12:44:25
【问题描述】:

我是 rails 的新手, 请让我知道注释掉一行并注释掉的方法 *.html.erb 文件中的一行代码。

【问题讨论】:

标签: ruby-on-rails ruby-on-rails-3


【解决方案1】:

ruby on rails notes 有一篇关于在 erb 文件中评论的非常好的博文

短版是

注释单行使用

<%# commented line %>

要评论整个块,请使用if false 来包围您的代码

<% if false %>
code to comment
<% end %>

【讨论】:

  • +1 用于解决我的问题,但我发现它非常难看。要注释一行,我必须使用 3 个额外的字符,而块注释只不过是不会执行的代码 - 没有其他颜色编码,这使得第一次查看哪些代码没有执行非常不切实际。
  • 对于单行,您不需要连字符,例如
  • comment_block 辅助函数会很棒。也许当我获得更多 Rails 经验(我是新手)时,我会创建一个拉取请求
  • @gotqn 那么你会爱上HAML
  • 第一行中的链接不存在逗留
【解决方案2】:

请注意,如果您想注释掉一行打印 erb,您应该这样做

<%#= ["Buck", "Papandreou"].join(" you ") %>

【讨论】:

    【解决方案3】:

    这是连续非打印 Ruby 代码的最干净、最简单的答案:

    下面也恰好回答了原始发帖人的问题,没有一些评论者提到的“丑陋”条件代码


    1. 连续的非打印 Ruby 代码

      • 这适用于任何混合语言的Rails View文件,例如*.html.erb, *.js.erb, *.rhtml

      • 这也应该适用于 STD OUT/printing 代码,例如&lt;%#= f.label :title %&gt;

      • 详情

        而不是像我们通常这样在每一行使用rails括号并在每个起始括号前注释:

          <%# if flash[:myErrors] %>
            <%# if flash[:myErrors].any? %>
              <%# if @post.id.nil? %>
                <%# if @myPost!=-1 %>
                  <%# @post = @myPost %>
                <%# else %>
                  <%# @post = Post.new %>
                <%# end %>
              <%# end %>
            <%# end %>
          <%# end %>
        

        如果你将代码写成一个大块,你可以只在第一个开放的 Rails 括号中添加一个注释(hashmark/poundsign)......像这样:

          <%# 
            if flash[:myErrors] then
              if flash[:myErrors].any? then
                if @post.id.nil? then
                  if @myPost!=-1 then
                    @post = @myPost 
                  else 
                    @post = Post.new 
                  end 
                end 
              end 
            end 
          %>
        

    【讨论】:

    • 我的注释代码工作的机会是天文数字......
    • @TejasKale 抱歉...不确定您的意思? --> YOUR 代码或 MY 代码** 工作的可能性?
    • 如果代码不正确,上面的方法会产生错误,我几乎总是这样:)
    • 首先,不需要then。其次,这完全破坏了MVC背后的想法。将您的逻辑保存在助手或控制器中。 -1
    • 我在这里遗漏了什么吗?...这甚至不能回答问题。问题是“如何注释掉代码?”,而不是“如何编写多行if 语句?”。您的回答与 cmets 无关。
    猜你喜欢
    • 2016-12-02
    • 2013-12-17
    • 1970-01-01
    • 2015-09-04
    • 2017-02-02
    • 2017-04-17
    • 1970-01-01
    • 2016-10-13
    相关资源
    最近更新 更多