如何在rails html.erb文件中注释行?

Hem*_*nth 89 ruby-on-rails ruby-on-rails-3

作为rails的新手,请让我知道注释单行的方法,并在*.html.erb文件中注释掉一行.

Nik*_*ohl 182

ruby on rails notes有一个关于erb-files评论的非常好的博文

短版是

评论单行使用

<%-# commented line -%>
Run Code Online (Sandbox Code Playgroud)

评论整个块使用a if false来代替这样的代码

<% if false %>
code to comment
<% end %>
Run Code Online (Sandbox Code Playgroud)

  • 对于单行,您不需要连字符,例如<%#my comment%> (23认同)
  • +1为了解决我的问题,但我发现它非常难看.要评论一行,我必须使用3个附加字符,并且块注释只是不会被执行的代码 - 没有其他颜色编码使得查看哪些代码在第一眼看上去不是非常不实用. (12认同)
  • @gotqn然后你会爱[HAML](http://haml.info/docs/yardoc/file.REFERENCE.html#haml_comments_)! (4认同)
  • 第一行中的链接不存在 (2认同)

Ger*_*rry 26

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

<%#= ["Buck", "Papandreou"].join(" you ") %>
Run Code Online (Sandbox Code Playgroud)


Fla*_*nno 6

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

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


  1. 连续的非打印 Ruby 代码

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

    • 这也应该适用于STD OUT/打印代码,例如<%#= f.label :title %>

    • 详情

      而不是像我们通常这样做的那样在每一行上使用 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 %>
      
      Run Code Online (Sandbox Code Playgroud)

      如果您将代码编写为一个大块,则可以改为只向第一个打开的 Rails 括号添加一条注释(哈希标记/井号)......像这样:

        <%# 
          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 
        %>
      
      Run Code Online (Sandbox Code Playgroud)