数组的未定义方法`each'

时间:2015-04-24 11:34:02

标签: ruby arrays each

我正在尝试迭代包含测试用例的类的各种实例的数组。根据RubyDoc,数组应该具有@array = [] (0..20).to_a.each{ |i| @array.push(i) } @array.each { |i| puts i } 函数:

  

与包含Enumerable模块的所有类一样,Array有一个每个方法,它定义了应该迭代哪些元素以及如何迭代。

以下代码有效:

@violation_array = []
(0..2).to_a.each{ |i|
  @violation_array.push(Violation.new("violation#{i}"))
}
@violation_array.each { |violation|
  puts violation
}

但是这个没有:

NoMethodError: undefined method `each ' for #<Array:0x007f3aa232ece8>

并产生此错误:

@violation_array.inspect

each之前的[#<Violation:0x007f71e4965e30 @key="violation0">, #<Violation:0x007f71e4965bb0 @key="violation1">, #<Violation:0x007f71e49657f0 @key="violation2">] 值为:

each

为什么这个数组缺少return new RedirectResponse($this->router->generate('payment_complete', array('orderNumber' => $order->getOrderNumber(),))); 函数?

编辑:我在多个设置(python,ruby,markdown)中遇到了这个问题。 2年后,我终于明白了:我总是输入 space ,同时仍然从前一个或后一个需要它的角色拿着 AltGr 。这会产生一个不可思议的空间,请参阅http://greenbytes.de/tech/webdav/rfc7230.html#header.content-length以获得解决方案)。

1 个答案:

答案 0 :(得分:5)

我认为错误信息可能很有启发性。方法名称中有一个空格,因此不存在的方法是"each "。不知何故,我认为你的代码中出现了一些虚假的空白。肯定 是数组上的"each"方法,但不是"each "方法。