我正在尝试在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。
答案 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。