如何评论rails 5控制器中的多行?

时间:2016-07-28 11:53:59

标签: ruby-on-rails ruby

我正在尝试在Rails 5控制器中注释多行,我在网上搜索并找到了以下解决方案:“= begin”

=begin (Multiple lines)
      respond_to do |format|
       if @person.update_attributes(params[:person])
        flash[:notice] = 'Person was successfully updated.'
        format.html { redirect_to(@person) }
        format.xml { head :ok }
       else
        format.html { render :action => "edit" }
        format.xml { render :xml => @person.errors, :status => :unprocessable_entity }
       end
      end
=end

但它给出了这个错误:

  

语法错误,意外'='=开始

我正在使用Rails 5.0。

4 个答案:

答案 0 :(得分:5)

Ruby多行注释仅在行的开头与0 & 1之间没有空格时才有效(同样适用于Array ( [2] => Array ( [count] = 2 ) [1] => Array ( [count] = 1 ) ) )。确保该行以=begin开头:

这有效:

=end

这不起作用:

=begin

答案 1 :(得分:1)

=begin=end之前不得有任何空格

=begin
  code 
  I 
  want
  to 
  comment
=end

这类似于使用#

评论每一行
# code 
# I 
# want
# to 
# comment

答案 2 :(得分:0)

= begin和= end应该处于同一级别的缩进级别。如下所示

class MyController < ApplicationController
=begin
=end
end

答案 3 :(得分:0)

除了其他答案之外,Ruby中的多行注释语法虽然存在,但几乎没有使用。一些编辑器和语法高亮显示器甚至不识别它。您最好的选择是在每个注释行上使用#

使用#的其他好处是可以选择嵌套注释,这是=begin ... =end语法无法实现的。

respond_to do |format|
  if @person.update_attributes(params[:person])
    #  top level commented block
    #  flash[:notice] = 'Person was successfully updated.'
    #  # second level commented block
    #  # format.html { redirect_to(@person) }
    #  # format.xml { head :ok }
    # ...
  end
end

您的IDE一次没有评论/取消注释单个评论级别的问题。

有关讨论,请参阅this SO question