使用“include Enumerable”对每个对象进行Ruby方法调用

使用“include Enumerable”对每个对象进行Ruby方法调用,ruby,methods,enumerable,Ruby,Methods,Enumerable,我试图学习Ruby教程,但我感到非常困惑。我发现的所有地方似乎都在说,定义实例变量就是这样做的 class Example def fun # CODE end end e = Example.new e.fun # <- Will run your code 当我打电话时 e = Example.new e.each do |elmt| puts elmt end 我得到了错误 NoMethodError: undefined method `each

我试图学习Ruby教程,但我感到非常困惑。我发现的所有地方似乎都在说,定义实例变量就是这样做的

class Example
  def fun
    # CODE
  end
end

e = Example.new
e.fun     # <- Will run your code
当我打电话时

e = Example.new

e.each do |elmt|
  puts elmt
end
我得到了错误

NoMethodError: undefined method `each' for nil:NilClass
有谁能帮我弄清楚怎么让它工作吗。我无法找出问题所在,下面是让我相信这应该有效的许多来源中的三个。我显然做错了什么,但我就是看不出来

来源;
书籍:工程软件即服务

您有一个打字错误。这是初始化,不是初始化。您的@members实例变量从未分配给,这就是为什么它为零。

@LukeTurner如果它是自然英语,那么您的拼写错误被认为是美国对英国的,但Ruby更美国化,而不是英国化。谢谢,顺便说一句:如果你的每个方法所做的只是将块传递给另一个方法,那么让块匿名以减少混乱实际上是有害的,因为如果你给它一个名称,你可以传递它:def each&blk@members.each&blk end。
NoMethodError: undefined method `each' for nil:NilClass