1

我收到以下错误:

undefined method `each_pair' for []:Array

当尝试在 Rails erb 视图中迭代哈希时:

<% @result.each_pair do |k, v| %>
  <li><%= k %></li>
<% end %>

在普通的 Ruby 中,它工作正常。有任何想法吗?

4

2 回答 2

3

根据错误消息,@result必须是Arrayeach_pair没有为它定义方法。(方法each_pair是为 Hash 等定义的。)

尝试这个:

<% @result.each do |v| %>
  <li><%= v %></li>
<% end %>
于 2012-12-11T11:58:07.083 回答
2

你们都是对的(当然)。在我使用的初始页面加载中

@result = []

它只有在填充后才成为哈希。

使用

@result = Hash.new

修复了一切

对不起没用的帖子

于 2012-12-11T11:59:42.297 回答