Ruby on rails 关于Ruby的一般问题

Ruby on rails 关于Ruby的一般问题,ruby-on-rails,ruby,acts-as-versioned,Ruby On Rails,Ruby,Acts As Versioned,我已经在我的rails应用程序中安装了github.com的acts_as_版本插件,其中有一段代码我不完全理解,我希望有人能帮我澄清一下 class_eval <<-CLASS_METHODS def a_bunch_of_stuff .... end CLASS_METHODS class_eval这是一种内联引用大型多行字符串的方法。发件人: 字符串可以跨多个输入行继续,在这种情况下,它们将包含换行符。也可以使用here文档来表示长字符串文字。每当Ruby解析序

我已经在我的rails应用程序中安装了github.com的acts_as_版本插件,其中有一段代码我不完全理解,我希望有人能帮我澄清一下

class_eval <<-CLASS_METHODS
  def a_bunch_of_stuff
   ....
  end
CLASS_METHODS
class_eval这是一种内联引用大型多行字符串的方法。发件人:

字符串可以跨多个输入行继续,在这种情况下,它们将包含换行符。也可以使用here文档来表示长字符串文字。每当Ruby解析序列
时,它就是一个herdeoc

匹配的CLASS_方法标记基本上是起始引号和结束引号。如果您使用这些是等效的:

class SomeClass
  class_eval <<-CLASS_METHODS
    def first_method
    end
    def second_method
    end
  CLASS_METHODS
end

class SomeClass
  def self.first_method
  end
  def self.second_method
  end
end
class-SomeClass
等级评估
class SomeClass
  class_eval <<-CLASS_METHODS
    def first_method
    end
    def second_method
    end
  CLASS_METHODS
end

class SomeClass
  def self.first_method
  end
  def self.second_method
  end
end