0

我正在尝试进行 ajax 调用,它将返回对象数组并将其显示在视图中。我可以显示我的类位置的单个对象,但无法遍历数组。我收到以下错误

ActionView::Template::Error (undefined method `model_name' for NilClass:Class):

我的 js 文件是

 $("#locations").append("<%= escape_javascript(render(@locations)) %>");

我的部分文件是 _location.erb 是

<div id="locations" class="locations">
  <% unless @locations.nil %>
    <% @locations.each do |location| %>
      <%= @locations.name %>
    <% end %>
  <% end %>

我的控制器看起来像

 def search
   result = getResultFromSomeWhere
   @locations = Array.new(result.size)
   result.each do |resultobj|
     @locations.push(Location.new(resultobj))
   end
   respond_to do |format|
     format.js
   end
 end

我认为它与序列化有关,因为我正在传递 ActiveRecord 对象数组?

4

1 回答 1

0

假设结果的大小是 5,那么

@locations = Array.new(result.size)将返回[nil, nil, nil, nil, nil]

然后您将位置推送到该数组

[nil, nil, nil, nil, nil, location1, location2, ...]

然后你可以看到你的错误。

于 2012-08-23T21:42:35.337 回答