为什么在尝试循环哈希时会出现未定义的方法错误?

Gee*_*Out 1 ruby ruby-on-rails

我有一些代码:

  in_msg.updateComments.map{|c| c.values}.each do |comment|
    ...
  end
Run Code Online (Sandbox Code Playgroud)

in_msg.updateComments哈希在哪里.出于某种原因,如果此代码段返回错误,则第一行:

NoMethodError: undefined method `values' for #<Array:0x1382da058>
Run Code Online (Sandbox Code Playgroud)

我不确定为什么会这样.知道为什么会发生以及如何解决它?

DVG*_*DVG 9

map方法返回一个Enumerator,它将循环遍历散列中的每个键值对,但它产生一个数组,而不是散列,所以c看起来会像[key, value]而不是{key => value}.

Array没有实现values,这就是你得到错误的原因.