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 に答える